Roku - ButtonGroup使用左右键预先聚焦

时间:2017-11-17 07:26:43

标签: roku brightscript

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

事情是,我可以通过&#34; up&#34; &#34; down&#34; 键来推进这个按钮遥控器,我实际上需要使用&#34;左&#34; &#34;右&#34; 键完成此操作。

由于我已将 layoutDirection 值设置为 horiz ,我认为提前和反向键会自动更改为&#34;对&#34; < / em>和&#34;分别为&#34; 。似乎没有按预期工作。我错过了什么吗?请帮忙。

3 个答案:

答案 0 :(得分:1)

我通过 LayoutGroup 代替 ButtonGroup 以及 OnKeyEvent 功能帮助实现了这一目标。

不确定它是否是正确的做法。

如果可能,请提供最佳解决方案。

答案 1 :(得分:1)

来自Roku Documents:“ButtonGroup节点类管理VERTICAL Button节点列表的布局,可视属性和焦点管理。”所以它只适用于垂直按钮!顺便说一下,我不喜欢Roku默认按钮或ButtonGroup。您可以创建自己的按钮组件。在该组件中,在onKey事件中,您可以为垂直和水平按钮布局定义不同的行为。基于此,我认为你的方法很好。

答案 2 :(得分:0)

使用&#34; OnKeyEvent&#34;当key =&#34; left或&#34; right&#34;时,函数改变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