1


2

間違ったアイテムレンダラーを再利用するスパークリスト

itemRendererFunctionによって決定される複数のアイテムレンダラーを使用するリストコンポーネントがあります。 初めてデータを設定すると、期待どおりに機能します。 次に、新しいデータでデータを2回設定すると、itemRendererFunctionが呼び出されず、データと一致しなくても現在のレンダラーを再利用しようとします。 スクロールすると、関数が呼び出され、正しいレンダラーが使用されます。 データを設定する前にinvalidateDisplayListなどを呼び出してみましたが、問題は解決しませんでした。 何か案は?

3 Answer


4


これはFlex SDKのバグであることがわかりました。 Peter DeHaanは回避策(dataProviderの設定後にitemRendererFunctionプロパティを再設定)を提供し、SDKの将来のリリースのために提出しています。


0


ここにいくつかのアイデアがあります:

invalidatePropertiesをお試しください? ソースを見てみると、そうでない場合は、適切なものを取得するまで、見つけることができるすべての無効化メソッドを呼び出してください。

別のややハックな解決策は、現在のスクロール位置を取得せずに(リストのスクローラーを介して)データプロバイダーとして新しい配列を渡し(アイテムレンダラーを確実に再作成します)、スクロール位置を以前と同じに設定することですリフレッシュ。

または、異なるアイテムレンダラーの選択を抽象化してアイテムレンダラー自体にすることもできます。 :/


0


FWIW:Flexバグへのリンク:https://bugs.adobe.com/jira/browse/SDK-32018