Da geht es mir wie dir. So ganz bin ich noch nicht hinter die Sinnhaftigkeit der params gestiegen. Die wirken auf mich irgendwie umständlich und machen den Code für mich nur schwerer lesbar. Aber ich bin auch nur ein Gestalter und kein Programmierer. Mein Verständnis für solche Sachen ist entsprechend begrenzt.
Ich bin ja weder das eine noch das andere, aber Ansich ist das eher was für die Gestalter würde ich mal denken..
Da kann schon vieles eher ungenauer werden - sieht man ja am Beispiel, ich verwende ein include an zwei Stellen und prügel dann bestimmte Codeteile mit visible = false dazu das er tot
mit drin hängt. Da haben sicher Programmierer eher was dagegen als Gestalter;)..
Ein paar Stellen gibts schon wo es sinnvoll ist, vor allem wenn eben verschiedene Positionen fürs selbe hast, oder meinetwegen du hast 10 Listen die gleich sind bis auf die ID (weil es Core ID´s sind oder contents enthalten die an eine ID gebunden sind).
Da ist es schon klasse das zu includedieren mit der ID als Parameter. So kann man dann Favoriten, zwei unterschiedliche eigene Dialoge und noch ein Einstellendialog der zwei dieser Listen enthält
eben mit so etwas Abfrühstücken.
<include name="Common_dialogIconlist772">
<definition>
<itemlayout width="772" height="99">
<control type="image">
<width>772</width>
<height>99</height>
<texture colordiffuse="$VAR[DialogBg]" border="0,0,0,5">grey_nf.png</texture>
</control>
<control type="label">
<left>5</left>
<top>5</top>
<width>89</width>
<height>89</height>
<textcolor>inversmed</textcolor>
<font>Common_List_Icon</font>
<align>center</align>
<label>$VAR[DefaultIcons]</label>
</control>
<control type="image">
<left>5</left>
<top>5</top>
<width>89</width>
<height>89</height>
<bordersize>3</bordersize>
<aspectratio>keep</aspectratio>
<bordertexture colordiffuse="inversmed" border="3">white.png</bordertexture>
<texture>$INFO[ListItem.Art(thumb)]</texture>
<visible>!String.StartsWith(ListItem.Icon,Default)</visible>
</control>
<control type="label">
<left>120</left>
<width>622</width>
<height>99</height>
<textcolor>inversdark</textcolor>
<label>$INFO[ListItem.Label]</label>
</control>
</itemlayout>
<focusedlayout width="772" height="99">
<control type="image">
<width>772</width>
<height>99</height>
<texture colordiffuse="$VAR[DialogBg]" border="0,0,0,5">grey_nf.png</texture>
<visible>!Control.HasFocus($PARAM[id])</visible>
</control>
<control type="image">
<width>772</width>
<height>99</height>
<texture colordiffuse="SkinCol">white.png</texture>
<include>List_Item_Visible_Animation</include>
<visible>Control.HasFocus($PARAM[id])</visible>
</control>
<control type="label">
<left>5</left>
<top>5</top>
<width>89</width>
<height>89</height>
<textcolor>white</textcolor>
<font>Common_List_Icon</font>
<align>center</align>
<label>$VAR[DefaultIcons]</label>
</control>
<control type="image">
<left>5</left>
<top>5</top>
<width>89</width>
<height>89</height>
<bordersize>3</bordersize>
<aspectratio>keep</aspectratio>
<bordertexture colordiffuse="inversmed" border="3">white.png</bordertexture>
<texture>$INFO[ListItem.Art(thumb)]</texture>
<visible>!String.StartsWith(ListItem.Icon,Default)</visible>
</control>
<control type="label">
<left>120</left>
<width>622</width>
<height>99</height>
<textcolor>inversdark</textcolor>
<label>$INFO[ListItem.Label]</label>
<visible>!Control.HasFocus($PARAM[id])</visible>
</control>
<control type="label">
<left>120</left>
<width>622</width>
<height>99</height>
<textcolor>white</textcolor>
<label>$INFO[ListItem.Label]</label>
<visible>Control.HasFocus($PARAM[id])</visible>
</control>
</focusedlayout>
</definition>
</include>
Alles anzeigen
und einfach mit ID Angaben überall verwenden:
<include content="Common_dialogIconlist772">
<description>layout</description>
<param name="id" value="450" />
</include>
Allerdings geb ich dir dann wieder recht - da man ein halbes Jahr später keinen Plan mehr hat ob und wie was zusammenspielt.
Einfach dann wo breiter machen ohne zu wissen welcher hintergrund wieder wo dann auch geändert werden muss führt dann schnell dazu das es ohne kontrolle genausowenig bringt wie direkt im Code.
Ich würde wenn ich bumblebee wäre das auch einzeln machen item und focusedlayout..
Er hat halt leider teils Animierte und auch was ohne drin. Du musst dann halt zweimal alles ändern und die Liste ist schon etwas länger (anders für Episoden, Musikvideos usw..)..
Grüße