0

<s:List>Flex(4.6)のアイテムレンダラー内で、アイテムレンダラー自体の中で、リスト内の特定のアイテムのインデックスを識別する方法はありますか?

itemIndexクラスのプロパティを使用しようとしましたが、常にゼロが返されました。また、SOでのこの例では、いくつかのランタイムエラーが発生しました。

お時間をいただきありがとうございます。

4

2 に答える 2

1

主な用途:

<?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>
于 2012-07-17T19:53:05.733 に答える
1

itemIndexリストの作成のライフサイクル中にその値がまだ設定されていなかったため、それが機能していないことに気づきました。

アイテムレンダラー内で、addedToStageイベントをリッスンし、itemIndexそのハンドラー内で使用しました。addedToStageイベントをcreationCompleteに変更するとitemIndex、適切な値になります。

それが誰かを助けることを願っています。

于 2012-07-17T19:57:21.753 に答える