Fixed List Container: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
m (Robot: Changing Category:Skin Development to Category:Skin development)
(Fix broken Wikilink created by the Great Archive-a-thon of 2020)
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<section begin="main content" />
The '''Fixed List Container''' is one of several containers used to display items from file lists in a certain way. It is identical to the [[List Container]] with one exception: the focus area has a fixed position, while the list appears to move beneath it in response to directional input. Thus, moving up or down scrolls the items, not the focused position. As with all container controls, the [[Container Item Layout|layout]] of the items within the control is very flexible.
The fixed list container is one of several containers used to display items from file lists in various ways. The fixed list container is the same as the [[List Container]], with one exception: the focused item is fixed. Thus, moving up or down scrolls the items, not the focused position. As with all container controls, the layout of the items within the control is very flexible.


<syntaxhighlight lang="XML" enclose="div">
<syntaxhighlight lang="xml">
     <control type="fixedlist" id="50">
     <control type="fixedlist" id="50">
           <description>My first fixed list container</description>
           <description>My first fixed list container</description>
           <posx>80</posx>
           <left>80</left>
           <posy>60</posy>
           <top>60</top>
           <width>250</width>
           <width>250</width>
           <height>200</height>
           <height>200</height>
Line 20: Line 19:
           <autoscroll>true</autoscroll>
           <autoscroll>true</autoscroll>
           <focusposition>4</focusposition>
           <focusposition>4</focusposition>
           <itemlayout width="250" height="29">
          <movement>6</movement>
           <itemlayout width="650" height="29">
                     <control type="image">
                     <control type="image">
                             <posx>5</posx>
                             <left>5</left>
                             <posy>3</posy>
                             <top>3</top>
                             <width>22</width>
                             <width>22</width>
                             <height>22</height>
                             <height>22</height>
                             <info>ListItem.Icon</info>
                             <texture>$INFO[ListItem.Icon]</texture>
                     </control>
                     </control>
                     <control type="label">
                     <control type="label">
                             <posx>30</posx>
                             <left>30</left>
                             <posy>3</posy>
                             <top>3</top>
                             <width>430</width>
                             <width>430</width>
                             <height>22</height>
                             <height>22</height>
Line 37: Line 37:
                             <selectedcolor>green</selectedcolor>
                             <selectedcolor>green</selectedcolor>
                             <align>left</align>
                             <align>left</align>
                             <info>ListItem.Label</info>
                             <label>$INFO[ListItem.Label]</label>
                     </control>
                     </control>
                     <control type="label">
                     <control type="label">
                             <posx>475</posx>
                             <left>475</left>
                             <posy>3</posy>
                             <top>3</top>
                             <width>300</width>
                             <width>300</width>
                             <height>22</height>
                             <height>22</height>
Line 49: Line 49:
                             <textcolor>grey</textcolor>
                             <textcolor>grey</textcolor>
                             <align>right</align>
                             <align>right</align>
                             <info>ListItem.Label2</info>
                             <label>$INFO[ListItem.Label2]</label>
                     </control>
                     </control>
           </itemlayout>
           </itemlayout>
           <focusedlayout height="29" width="250">
           <focusedlayout height="29" width="650">
                     <control type="image">
                     <control type="image">
                             <width>485</width>
                             <width>485</width>
                             <height>29</height>
                             <height>29</height>
                             <posx>0</posx>
                             <left>0</left>
                             <posy>0</posy>
                             <top>0</top>
                             <visible>Control.HasFocus(50)</visible>
                             <visible>Control.HasFocus(50)</visible>
                             <texture>list-focus.png</texture>
                             <texture>list-focus.png</texture>
                     </control>
                     </control>
                     <control type="image">
                     <control type="image">
                             <posx>5</posx>
                             <left>5</left>
                             <posy>3</posy>
                             <top>3</top>
                             <width>22</width>
                             <width>22</width>
                             <height>22</height>
                             <height>22</height>
                             <info>ListItem.Icon</info>
                             <texture>$INFO[ListItem.Icon]</texture>
                     </control>
                     </control>
                     <control type="label">
                     <control type="label">
                             <posx>30</posx>
                             <left>30</left>
                             <posy>3</posy>
                             <top>3</top>
                             <width>430</width>
                             <width>430</width>
                             <height>22</height>
                             <height>22</height>
Line 77: Line 77:
                             <selectedcolor>green</selectedcolor>
                             <selectedcolor>green</selectedcolor>
                             <align>left</align>
                             <align>left</align>
                             <info>ListItem.Label</info>
                             <label>$INFO[ListItem.Label]</label>
                     </control>
                     </control>
                     <control type="label">
                     <control type="label">
                             <posx>475</posx>
                             <left>475</left>
                             <posy>3</posy>
                             <top>3</top>
                             <width>300</width>
                             <width>300</width>
                             <height>22</height>
                             <height>22</height>
Line 89: Line 89:
                             <textcolor>grey</textcolor>
                             <textcolor>grey</textcolor>
                             <align>right</align>
                             <align>right</align>
                             <info>ListItem.Label2</info>
                             <label>$INFO[ListItem.Label2]</label>
                     </control>
                     </control>
           </focusedlayout>
           </focusedlayout>
Line 96: Line 96:


=== Available tags ===
=== Available tags ===
In addition to the [[Default Control Tags]] the following tags are available. Note that each tag is '''lower case''' only. This is important, as xml tags are case-sensitive.
In addition to the [[default control tags]] the following tags are available. Note that each tag is '''lower case''' only. This is important as this file is written in XML, a language where tag names are case-sensitive.


{| class="prettytable"
{| class="prettytable"
! Tag !! Description
! Tag !! Description
|-  
|-
| '''viewtype'''
| '''viewtype'''
| The type of view. Choices are list, icon, wide, wrap, biglist, bigicon, bigwide, bigwrap, info and biginfo. The label attribute indicates the label that will be used in the "View As" control within the GUI. It is localizable via strings.xml.
| The type of view, valid values are: <code>list</code>, <code>icon</code>, <code>wide</code>, <code>wrap</code>, <code>biglist</code>, <code>bigicon</code>, <code>bigwide</code>, <code>bigwrap</code>, <code>info</code> and <code>biginfo</code>. The label attribute indicates the label that will be used in the "View As" control within the GUI. It is localizable via strings.xml. ''viewtype'' has no effect on the view itself. It is used by Kodi when switching skins to automatically select a view with a similar layout. Skinners should try to set ''viewtype'' to describe the layout as best as possible.
|-  
|-
| '''orientation'''
| '''orientation'''
| The orientation of the list. Defaults to vertical.
| The orientation of the list, defaults to vertical.
|-  
|-
| '''pagecontrol'''
| '''pagecontrol'''
| Used to set the <id> of the page control used to control this list.
| Used to set the <id> of the page control used to control this list.
|-  
|-
| '''scrolltime'''
| '''scrolltime'''
| The time (in ms) to scroll from one item to another.  By default, this is 200ms. The list will scroll smoothly from one item to another as needed. Set it to zero to disable the smooth scrolling. The scroll movement can be further adjusted by selecting one of the available [[Tweeners|tween]] methods.
| The time (in milliseconds) to scroll from one item to another, defaults to 200ms. The list will scroll smoothly from one item to another as needed, or setting it to zero to disables the smooth scrolling effect. The scroll movement can be further adjusted by selecting one of the available [[Tweeners|tween]] methods.
|-  
|-
| '''focusposition'''
| '''focusposition'''
| Specifies the focus position (from 0 -> number of displayable items - 1). The focused position doesn't change - instead, the items move up or down (or left and right) as focus changes.
| Specifies the focus position (from 0 -> number of displayable items - 1). The focused position doesn't change—instead, the items move up or down (or left and right) through the focus area.
|-  
|-
|  '''itemlayout'''
| '''movement'''
| Specifies the layout of items in the list. Requires the height attribute set in a vertical list, and the width attribute set for a horizontal list. The <itemlayout> then contains as many label and image controls as required. [[Container Item Layout|See here for more information.]]
| This will make the focused position scroll again at the end of the list. (ie. <movement>6</movement> if there are only 6 items below the focus, the focus moves down to the bottom)
|-  
|-
| '''focusedlayout'''
  | '''itemlayout'''
| Specifies the layout of items in the list that have focus. Requires the height attribute set in a vertical list, and the width attribute set for a horizontal list. The <focusedlayout> then contains as many label and image controls as required. [[Container Item Layout|See here for more information.]]
| Specifies the layout of items in the list and requires the height attribute to be set in a vertical list, or the width attribute set for a horizontal one. The <itemlayout> then contains as many label and image controls as required.<br />''See: '''[[Container Item Layout]]'''''
|-  
|-
| '''content'''
| '''focusedlayout'''
| Used to set the item content that this list will contain. Allows the skinner to setup a list anywhere they want with a static set of content, as a useful alternative to the grouplist control. [[Static List Content|See here for more information]]
| Specifies the layout of items in the list that have focus and requires the height attribute to be set in a vertical list, or the width attribute set for a horizontal one. The <focusedlayout> then contains as many label and image controls as required.<br />''See: '''[[Container Item Layout]]'''''
|-  
|-
| '''preloaditems'''
| '''content'''
| Used in association with the background image loader. [[Background Image Loader|See here for more information]]
| Used to set the item content that this list will contain, allowing the skinner to setup a list anywhere they want with a static set of content, as a useful alternative to the <code>grouplist</code> control.<br />''See: '''[[Static List Content]]'''''
|-  
|-
| '''autoscroll'''
| '''preloaditems'''
| Used to make the container scroll automatically
| Used in association with the [[Archive:Background Image Loader|Background Image Loader]].
|-
| '''autoscroll'''
| Used to make the container scroll automatically
|}
|}


<section end="main content" />
== See also ==
== See also ==
'''Development:'''
'''Development:'''
* [[Add-on development]]
* [[Add-on development]]
* [[Skinning]]
* [[Skinning]]


[[Category:Skin development]]
[[Category:Skin development]]

Revision as of 00:50, 11 November 2021

The Fixed List Container is one of several containers used to display items from file lists in a certain way. It is identical to the List Container with one exception: the focus area has a fixed position, while the list appears to move beneath it in response to directional input. Thus, moving up or down scrolls the items, not the focused position. As with all container controls, the layout of the items within the control is very flexible.

    <control type="fixedlist" id="50">
          <description>My first fixed list container</description>
          <left>80</left>
          <top>60</top>
          <width>250</width>
          <height>200</height>
          <visible>true</visible>
          <onup>2</onup>
          <ondown>3</ondown>
          <onleft>1</onleft>
          <onright>1</onright>
          <viewtype label="3D list">list</viewtype>
          <orientation>vertical</orientation>
          <pagecontrol>25</pagecontrol>
          <scrolltime tween="sine" easing="out">200</scrolltime>
          <autoscroll>true</autoscroll>
          <focusposition>4</focusposition>
          <movement>6</movement>
          <itemlayout width="650" height="29">
                    <control type="image">
                            <left>5</left>
                            <top>3</top>
                            <width>22</width>
                            <height>22</height>
                            <texture>$INFO[ListItem.Icon]</texture>
                    </control>
                    <control type="label">
                            <left>30</left>
                            <top>3</top>
                            <width>430</width>
                            <height>22</height>
                            <font>font13</font>
                            <aligny>center</aligny>
                            <selectedcolor>green</selectedcolor>
                            <align>left</align>
                            <label>$INFO[ListItem.Label]</label>
                    </control>
                    <control type="label">
                            <left>475</left>
                            <top>3</top>
                            <width>300</width>
                            <height>22</height>
                            <font>font13</font>
                            <aligny>center</aligny>
                            <selectedcolor>green</selectedcolor>
                            <textcolor>grey</textcolor>
                            <align>right</align>
                            <label>$INFO[ListItem.Label2]</label>
                    </control>
          </itemlayout>
          <focusedlayout height="29" width="650">
                    <control type="image">
                            <width>485</width>
                            <height>29</height>
                            <left>0</left>
                            <top>0</top>
                            <visible>Control.HasFocus(50)</visible>
                            <texture>list-focus.png</texture>
                    </control>
                    <control type="image">
                            <left>5</left>
                            <top>3</top>
                            <width>22</width>
                            <height>22</height>
                            <texture>$INFO[ListItem.Icon]</texture>
                    </control>
                    <control type="label">
                            <left>30</left>
                            <top>3</top>
                            <width>430</width>
                            <height>22</height>
                            <font>font13</font>
                            <aligny>center</aligny>
                            <selectedcolor>green</selectedcolor>
                            <align>left</align>
                            <label>$INFO[ListItem.Label]</label>
                    </control>
                    <control type="label">
                            <left>475</left>
                            <top>3</top>
                            <width>300</width>
                            <height>22</height>
                            <font>font13</font>
                            <aligny>center</aligny>
                            <selectedcolor>green</selectedcolor>
                            <textcolor>grey</textcolor>
                            <align>right</align>
                            <label>$INFO[ListItem.Label2]</label>
                    </control>
          </focusedlayout>
    </control>

Available tags

In addition to the default control tags the following tags are available. Note that each tag is lower case only. This is important as this file is written in XML, a language where tag names are case-sensitive.

Tag Description
viewtype The type of view, valid values are: list, icon, wide, wrap, biglist, bigicon, bigwide, bigwrap, info and biginfo. The label attribute indicates the label that will be used in the "View As" control within the GUI. It is localizable via strings.xml. viewtype has no effect on the view itself. It is used by Kodi when switching skins to automatically select a view with a similar layout. Skinners should try to set viewtype to describe the layout as best as possible.
orientation The orientation of the list, defaults to vertical.
pagecontrol Used to set the <id> of the page control used to control this list.
scrolltime The time (in milliseconds) to scroll from one item to another, defaults to 200ms. The list will scroll smoothly from one item to another as needed, or setting it to zero to disables the smooth scrolling effect. The scroll movement can be further adjusted by selecting one of the available tween methods.
focusposition Specifies the focus position (from 0 -> number of displayable items - 1). The focused position doesn't change—instead, the items move up or down (or left and right) through the focus area.
movement This will make the focused position scroll again at the end of the list. (ie. <movement>6</movement> if there are only 6 items below the focus, the focus moves down to the bottom)
itemlayout Specifies the layout of items in the list and requires the height attribute to be set in a vertical list, or the width attribute set for a horizontal one. The <itemlayout> then contains as many label and image controls as required.
See: Container Item Layout
focusedlayout Specifies the layout of items in the list that have focus and requires the height attribute to be set in a vertical list, or the width attribute set for a horizontal one. The <focusedlayout> then contains as many label and image controls as required.
See: Container Item Layout
content Used to set the item content that this list will contain, allowing the skinner to setup a list anywhere they want with a static set of content, as a useful alternative to the grouplist control.
See: Static List Content
preloaditems Used in association with the Background Image Loader.
autoscroll Used to make the container scroll automatically

See also

Development: