<s:List>
Flex(4.6)のアイテムレンダラー内で、アイテムレンダラー自体の中で、リスト内の特定のアイテムのインデックスを識別する方法はありますか?
itemIndex
クラスのプロパティを使用しようとしましたが、常にゼロが返されました。また、SOでのこの例では、いくつかのランタイムエラーが発生しました。
お時間をいただきありがとうございます。
<s:List>
Flex(4.6)のアイテムレンダラー内で、アイテムレンダラー自体の中で、リスト内の特定のアイテムのインデックスを識別する方法はありますか?
itemIndex
クラスのプロパティを使用しようとしましたが、常にゼロが返されました。また、SOでのこの例では、いくつかのランタイムエラーが発生しました。
お時間をいただきありがとうございます。
主な用途:
<?xml version="1.0" encoding="utf-8"?>
<s:Application
width="100%"
height="100%"
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<s:List itemRenderer="IndexedItemRenderer">
<s:dataProvider>
<s:ArrayList>
<fx:String>Item A</fx:String>
<fx:String>Item B</fx:String>
<fx:String>Item C</fx:String>
<fx:String>Item D</fx:String>
<fx:String>Item E</fx:String>
</s:ArrayList>
</s:dataProvider>
</s:List>
</s:Application>
IndexedItemRendererアイテムレンダラー:
<?xml version="1.0" encoding="utf-8"?>
<s:ItemRenderer
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
autoDrawBackground="true">
<s:Label text="{itemIndex + 1}. {data}"/>
</s:ItemRenderer>
itemIndex
リストの作成のライフサイクル中にその値がまだ設定されていなかったため、それが機能していないことに気づきました。
アイテムレンダラー内で、addedToStage
イベントをリッスンし、itemIndex
そのハンドラー内で使用しました。addedToStage
イベントをcreationComplete
に変更するとitemIndex
、適切な値になります。
それが誰かを助けることを願っています。