使用 LabelList 或 MarkupList 为每个内容节点渲染两个标签?

Use LabelList or MarkupList to render two labels for each content node?

我希望实现 LabelList 或 MarkupList(如果需要),其中内容节点包含两个标签(两个标题,缺少更好的术语)。

我注意到 roku 的默认设置页面上的许多内容节点都有两个呈现的标签。

像这样:

----------------------------------------
Label 1                          Label 2
----------------------------------------
Label 1                          Label 2
----------------------------------------
Label 1                          Label 2
----------------------------------------

这个其实很简单。您将需要使用标记列表,您可以在其中创建自定义场景图形组件的列表。首先,创建一个扩展组的自定义场景图形组件,将两个不同的标签节点作为子节点。我会将一个节点的翻译字段设置为 [x.0],具体取决于您希望两个标签的间距有多远,或者您可以使用标签节点。然后,创建一个 markupList,并将 "itemComponentName" 设置为带有两个标签的自定义组件。最后,使用必要的数据(在本例中为两个文本字段)创建一个内容节点作为标记列表的子节点,如下所示:

 <MarkupList
        id = "MarkupList"
        itemComponentName = "<INSERT COMPONENT ITEM HERE>"
        numRows="3" >

        <ContentNode id = "ContentNode" role = "content" >
            <ContentNode
              text1="Label 1"
              text2="Label 2"/>
            <ContentNode
              text1="Label 1"
              text2="Label 2"/>
            <ContentNode
              text1="Label 1"
              text2="Label 2"/>
        </ContentNode>

      </MarkupList>`

您可能必须改用 addFields() 方法来为标签添加内容。

以下是来自 Roku SDK 的一些资源: 创建自定义组件 - https://sdkdocs.roku.com/display/sdkdoc/Creating+Custom+Components

标记列表 - https://sdkdocs.roku.com/display/sdkdoc/MarkupList

添加字段() - https://sdkdocs.roku.com/display/sdkdoc/ifSGNodeField#ifSGNodeField-addFields(fieldsasObject)asBoolean