【问题标题】:Use LabelList or MarkupList to render two labels for each content node?使用 LabelList 或 MarkupList 为每个内容节点呈现两个标签?
【发布时间】:2018-07-14 06:25:48
【问题描述】:

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

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

类似这样的:

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

【问题讨论】:

    标签: roku brightscript scenegraph


    【解决方案1】:

    这实际上是相当简单的。您将需要使用标记列表,您可以在其中创建自定义场景图形组件的列表。首先,创建一个扩展 Group 的自定义 Scenegraph 组件,将两个不同的 Label 节点作为子节点。我会将一个节点的翻译字段设置为 [x.0],具体取决于您希望两个标签的间距,或者您可以使用标签节点。然后,制作一个标记列表,并将“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

    addField() - https://sdkdocs.roku.com/display/sdkdoc/ifSGNodeField#ifSGNodeField-addFields(fieldsasObject)asBoolean

    【讨论】:

    • 感谢您的回复。这很有意义,让我试试看。有没有一种简单的方法让它看起来像默认的 LabelList?并不是因为我可能需要这样做而犹豫不决,我想保持风格一致。
    • 它看起来类似于 LabelList。唯一的问题是处理它的焦点部分,因为您需要提供位图背景。 MarkupList 与 LabelList 的大部分字段具有相同的字段,因此即使外观不同,也应该相似。
    • 为了正确地为所选节点着色,我遵循了这个文档说明,sdkdocs.roku.com/display/sdkdoc/…。 "focusPercent 接口字段定义了一个 onChange 函数,当项目进入/离开列表的焦点区域时更改标签文本的颜色"
    • 太棒了!另一种选择是指定您自己的位掩码,这是一个九块图像,显示在焦点行上以指示焦点。
    猜你喜欢
    • 1970-01-01
    • 2014-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-08
    • 2010-11-20
    • 2011-12-21
    相关资源
    最近更新 更多