0
我想創建一個自定義Spark列表,基於數據提供者行中的值(稱爲類型)將爲該行設置條件項呈示器。Flex移動Spark列表*條件* ItemRenderer
<s:List>
<s:dataProvider>
<s:ArrayCollection>
<s:source>
<fx:Object type="type1" label="type 1 item" />
<fx:Object type="type2" label="type 2 item" />
<fx:Object type="type3" label="type 3 item" />
<fx:Object type="type2" label="type 2 item" />
<fx:Object type="type4" label="type 4 item" />
</s:source>
</s:ArrayCollection>
</s:dataProvider>
</s:List>
所以實質上,每種行類型的項目渲染器都是不同的。
爲什麼我要這樣做?因爲在項目渲染器中爲不同的佈局使用狀態是不可靠的,所以當您快速滾動時,它會被擊中或錯過。
我確實找到了MX列表驗證碼:
public class MultipleRenderersList extends List
{
override public function createItemRenderer(data:Object):IListItemRenderer
{
if (data.type == 'type1')
{
return new Type1Component;
}
else if (data.label == 'type2')
{
return new Type2Component;
}
return null;
}
但火花名單不公開「createItemRenderer」,甚至任何類似。它確實有
override public function set itemRenderer(value:IFactory):void
但我沒有辦法訪問dataProvider做問題的條件部分。
任何人都可以幫忙嗎?
只要讓你的itemrenderer自己處理它。 – BotMaster
@BotMaster @BotMaster,我不明白那個評論,我試圖實現的是當DataProvider呈現_type1_的行項目,我想要一個type1項目渲染器(不同的佈局,顏色等),**只是爲那一行* *與_type2_相同等。我不能在自定義渲染器中使用狀態切換,因爲它真的不可靠。除非我錯過了某些明顯的東西,否則請進一步解釋:)感謝 –
如果您的自定義itemrenderer覆蓋數據,那麼您可以讓它決定這些數據以及如何呈現它自己。 – BotMaster