因此,對於工作中的項目,我們一直負責爲客戶創建Roku應用程序。對不起,如果這是一個愚蠢的問題,但我從來沒有碰過brightscript或Roku開發,而且大多是一個react/javascript開發人員。如何在屏幕上的鍵盤和按鈕組之間移動焦點?
我插入我的方式,現在我正在嘗試創建一個scenegraph組件來顯示鍵盤和下面顯示的ButtonGroup。按鈕組基本上用於選擇提交「鍵盤」文本字段中的內容,或者取消條目。到目前爲止,我已經將組件渲染和焦點中的所有元素設置爲鍵盤(這似乎是必需的,否則,只需在遙控器上按下即可選擇鍵盤)。
但是,當在鍵盤周圍導航時,我找不到任何將焦點移動到按鈕組的方式。基本上,如果我按下鍵盤底部的遙控器,它什麼也不做。它永遠不會將焦點轉移到團隊。
我只是希望有人能幫我弄明白這一點。我知道答案可能很明顯,我只是想念它,但是我整個上午一直在反對這件事,擺弄着一些東西,而我似乎無法弄清楚。
下面是一個組件的住房鍵盤和buttongroup的例子。隨意批評你看到的其他任何事情,我也做得很糟糕,因爲再次,我對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,因爲我在其他地方使用onKeyEvent,但在這個組件的情況下,它忽略了它,即使在移動鍵盤字符或按鈕組按鈕時它會觸發「向下」和「向上」。看到它在運動,完全知道它現在的工作方式。非常感謝您的快速回復和正確答案。 – curmudgeon1005
您的歡迎:) –