0

最近我正在构建一个包含一些按钮的频道,我正在尝试使用https://sdkdocs.roku.com/display/sdkdoc/ButtonGroup。由于我尝试将按钮分成两行,所以我尝试了两行中的两个按钮组。喜欢:

按钮1 按钮2

按钮 3 按钮 4 按钮 5

这是我在xml中的原始代码:

<ButtonGroup layoutDirection =  "horiz" addItemSpacingAfterChild = "false" horizAlignment = "left">
    <Button
        id = "button1"
        text = "button1"/>
    <Button
        id = "Button2"
        text = "Button2"/>
</ButtonGroup>
<ButtonGroup layoutDirection =  "horiz" >
    <Button
        id = "Button3"
        text = "Button3"/>
    <Button
        id = "Button4"
        text = "Button4"/>
    <Button
        id = "Button5"
        text = "Button5"/>                          
</ButtonGroup>

如何删除每个按钮组的自动对焦,因为我不想同时在按钮 1 和按钮 3 上自动对焦。

这是我的工作环境:

Roku2、Roku3,为 Java 开发人员使用 Eclipse Mars 2.0。

这是我的一些问题:

由于 ButtonGroup 是从 LayoutGroup 扩展而来的。我发现只有 LayoutGroup 的属性起作用,例如 layoutDirection 和 addItemSpacingAfterChild。但是 ButtonGroup 中的属性不起作用。就像我试图改变文本的颜色一样,我试图改变最大宽度。它们都不起作用。如何删除自动对焦并正确使用按钮组?

任何人都可以帮助解决这个问题吗?

4

1 回答 1

2

您应该将按钮作为字符串数组设置到 ButtonGroup 的“按钮”字段中。这是您需要的:

<ButtonGroup
    id="buttonGroup1"
    layoutDirection="horiz"
    addItemSpacingAfterChild="false"
    horizAlignment="left"
    focusFootprintBitmapUri="pkg:/"
    buttons="[&quot;button1&quot;, &quot;button2&quot;]"/>
<ButtonGroup
    id="buttonGroup2"
    layoutDirection="horiz"
    translation="[0, 100]"
    focusFootprintBitmapUri="pkg:/"
    buttons="[&quot;button3&quot;, &quot;button4&quot;, &quot;button5&quot;]"/>

此外,您可以从 BrightScript 代码设置按钮:

buttonGroup1 = m.top.findNode("buttonGroup1")
buttonGroup1.buttons = ["button1", "button2"]

因此, ButtonGroup 将自动创建 Button 节点并将其附加到自身,您稍后可以通过以下方式获得:

button = buttonGroup1.getChild(0)

最后,要从未聚焦的按钮中删除自动聚焦,您可以将“focusFootprintBitmapUri”字段设置为无效字符串。这是一种 hack,但它有效,我找不到更好的方法。

buttonGroup.focusFootprintBitmapUri = ""
于 2016-04-04T17:24:26.400 回答