Roku:在“网格”屏幕的频道徽标下显示每个项目的频道名称

时间:2018-07-27 06:03:26

标签: roku brightscript

我们如何在网格屏幕的每一行中显示每个项目的频道名称? 我能够在仅关注项目时显示,但我想在加载所有行列表时显示频道名称

1 个答案:

答案 0 :(得分:0)

要为RowList中的每个项目创建一个自定义组件,您需要创建一个新的XML文件,该文件定义该项目并具有基于传入的ContentNode填充每个项目的功能。在您的情况下,我将使用LayoutGroup Scenegraph组件来组合图像和文本。另外,您需要包括一个itemContent接口字段,当将组件呈现为内容节点时将传递该字段。这是定义行项目的示例代码:

StudentResponse(String course, List<Student> students)

您还需要设置一个功能,以根据通过RowList发送的ContentNode为每个组件分配文本和徽标。最后,您需要在XML文件的RowList组件定义中包括以下字段:

<?xml version="1.0" encoding="utf-8" ?>

<component name="RowListItem" extends="Group">

<interface>
  <field id="itemContent" type="node" onChange = "showcontent"/>
</interface>

<script type="text/brightscript" >
<![CDATA[

  function init() as void
    m.itemImage = m.top.findNode("itemImage")
    m.itemText = m.top.findNode("itemText")
    m.itemRectangle = m.top.findNode("itemRectangle")
  end function
]]>
</script>

<children>
    <LayoutGroup layoutDirection="vert" vertAlignment="top" itemSpacings="20" translation="[0,0]" >
        <Rectangle
          id="itemRectangle"
          color="#A9A9A9"
          opacity="0.9"
          width="400"
          height="350"
          translation="[0,0]" >
        <Poster
          id="itemImage"
          translation="[0,0]"
          width="400"
          height="180" />
        <Label
          id="itemText"
          color="0xFFFFFF"
          horizAlign="left"
          translation="[10,200]"
          font="font:MediumSystemFont"
          width="400"
          height="65" />
        </Rectangle>
    </LayoutGroup>
</children>

</component>

希望这会有所帮助!