Roku - 按钮组使用左右键前进焦点



我对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

相关内容

  • 没有找到相关文章

最新更新