我对Roku世界很陌生。我闻起来这是一个非常简单直接的问题,但无法找出任何解决方案。任何帮助将不胜感激。
我正在尝试创建一个示例应用程序,该应用程序在UI中包含三个按钮。所以,我选择了ButttonGroup来做这个用例。
<ButtonGroup id="btnGroup" layoutDirection="horiz"
visible="true" translation="[90,601]"
itemSpacings="[20,20]" minWidth="240"
maxWidth="240" buttonHeight="80">
<Button id="button1" text="" iconUri="" focusedIconUri=""
focusFootprintBitmapUri="pkg:"
focusBitmapUri="pkg"/>
<Button id="button2" text="" iconUri="" focusedIconUri=""
focusFootprintBitmapUri="pkg:"
focusBitmapUri="pkg:"/>
<Button id="button3" text="" iconUri="" focusedIconUri=""
focusFootprintBitmapUri="pkg:"
focusBitmapUri="pkg:"/>
</ButtonGroup>
问题是我能够使用遥控器的"向上"和">向下"键通过此按钮前进,我实际上需要使用">左"和"右">键来完成此操作。
由于我将 layoutDirection 值设置为 horiz,我认为前进和反向键将分别自动更改为">右">和"左"。似乎没有按预期工作。我在这里错过了什么吗?请帮忙。
我通过使用LayoutGroup而不是ButtonGroup以及在OnKeyEvent函数的帮助下使这成为可能。
不确定这是否是正确的做法。
如果可能,请提供最佳解决方案。
来自Roku文档:"ButtonGroup节点类管理按钮节点垂直列表的布局,视觉属性和焦点管理。所以它仅适用于垂直按钮!顺便说一句,我不喜欢Roku默认的或ButtonGroup。您可以创建自己的按钮组件。在该组件中,在 onKey 事件中,您可以为垂直和水平按钮布局定义不同的行为。基于此,我认为您的方法很好。
我们使用"OnKeyEvent"函数,当键="左或右"时更改mybuttongroup.focusbutton。 见下文:
function onKeyEvent(key as String,press as Boolean) as Boolean
if key = "left"
m.mybuttongroup.focusButton = 0 'left button
return true
else if key = "right"
m.mybuttongroup.focusButton = 1 'right button
return true
end if
return false
end function