Року: показать название канала каждого элемента под логотипом канала на экране сетки

Как мы можем отобразить название канала каждого элемента в каждой строке сетки? Я могу отображать только когда элемент находится в фокусе, но я хочу отображать название канала при загрузке всего списка строк

1 ответ

Чтобы создать пользовательский компонент для каждого элемента в RowList, вам потребуется создать новый XML-файл, который определяет элемент и имеет функцию для заполнения каждого элемента на основе переданного Content Node. В вашем случае я бы использовал LayoutGroup Компонент Scenegraph для объединения как изображения, так и текста. Кроме того, вам необходимо включить поле интерфейса itemContent, которое будет передаваться при рендеринге компонента в качестве узла содержимого. Вот пример кода для определения элемента строки:

<?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>

Вам также потребуется настроить функцию для назначения текста и логотипа каждому компоненту на основе ContentNode, отправляемого через RowList. Наконец, вам нужно включить следующее поле в определение вашего компонента RowList в файле XML:

itemComponentName="RecommendedRowListItem"

Надеюсь это поможет!

Другие вопросы по тегам