gpt4 book ai didi

roku - 如何在屏幕上的键盘和按钮组之间移动焦点?

转载 作者:行者123 更新时间:2023-12-01 23:06:57 26 4
gpt4 key购买 nike

因此,对于工作中的一个项目,我们的任务是为客户创建 Roku 应用程序。抱歉,如果这是一个愚蠢的问题,但我一般从未接触过 BrightScript 或 Roku 开发,而且主要是一个 React/JavaScript 开发人员。

我正在努力完成,现在我正在尝试创建一个场景图组件来显示键盘和下面显示的 ButtonGroup。按钮组本质上用于选择提交键盘文本字段中的内容或取消输入。

到目前为止,我已经将组件渲染中的所有元素和焦点设置到了键盘(这似乎是必要的,否则,仅通过按 Remote 上和下键将无法选择键盘)。

但是,当在键盘上导航时,我找不到任何方法将焦点移动到按钮组。基本上,如果我按下键盘底行的 Remote ,它不会执行任何操作。它永远不会将焦点移至按钮组。

我只是希望有人能帮我解决这个问题。我知道答案可能是显而易见的,而我只是想念它,但我整个早上都在绞尽脑汁地思考这个问题,摆弄一些东西,但我似乎就是无法弄清楚。

下面是容纳键盘和按钮组的组件示例。如果你发现我做得不好,请随意批评,因为我对 Roku 开发没有真正的线索。

<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2016 Roku Corp. All Rights Reserved. -->
<component name="MemberEmail" extends="Group">

<children>
<LayoutGroup id="MemberEmailLayout" translation = "[ 0, 0 ]" itemSpacings="[20]">
<Keyboard id="EmailKeyboard" />
<ButtonGroup id="EmailButtonGroup" />
</LayoutGroup>
</children>
<script type = "text/brightscript" >

<![CDATA[

sub init()
m.parentNode = m.top.getParent()

m.memberEmailLayout = m.top.findNode("MemberEmailLayout")
m.emailKeyboard = m.top.findNode("EmailKeyboard")
m.emailButtonGroup = m.top.findNode("EmailButtonGroup")

m.emailButtonGroup.buttons = ["Submit", "Cancel"]
m.emailButtonGroup.observeField("buttonSelected","buttonPressed")

emailKeyboardRect = m.memberEmailLayout.boundingRect()
emailKeyboardCenterX = (1920 - emailKeyboardRect.width) / 2
emailKeyboardCenterY = (1080 - emailKeyboardRect.height) / 2
m.memberEmailLayout.translation = [ emailKeyboardCenterX, emailKeyboardCenterY ]

end sub

sub buttonPressed()
if m.emailButtonGroup.buttonSelected = 1 then
print "SUBMIT BUTTON SELECTED"
print "Input Value is"; m.emailKeyboard.text
m.parentNode.currentStep = "password"
else if m.emailButtonGroup.buttonSelected = 2 then
print "CANCEL BUTTON SELECTED"
end if
end sub
]]>

</script>

</component>

最佳答案

您可能想阅读文档中有关 onKeyEvent 函数的信息。将此函数添加到您的组件中:

    function onKeyEvent(key as String, press as Boolean) as Boolean
handled = false

if press
if key = "down" and not m.emailButtonGroup.hasFocus()
m.emailButtonGroup.setFocus(true)
handled = true
else if key = "up" and not m.emailKeyboard.hasFocus()
m.emailKeyboard.setFocus(true)
handled = true
end if
end if

return handled
end function

关于roku - 如何在屏幕上的键盘和按钮组之间移动焦点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44289814/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com