2011-07-11 8 views
1

特定のイベントの後にビューを更新するにはどうすればよいですか?すでに作成されたビューをリフレッシュする方法をフレックスします

私は複数のグループを含むビューを持っています。私はいくつかのグループを表示したり隠したりしたい。

onCreationComplete()またはinitialize()メソッドは、ビュー作成の開始時にのみ機能します。

+0

あなたはもっと文脈を与えられますか?私はあなたが必要でないかもしれないときに再描画を強制しようとしていると思います。 –

答えて

5

はビュー

それはトリックをしない場合、私に教えてください、私たちは他のいくつかのトリックを試してみましょうにinvalidateDisplayList()を試してみてください。

+1

ほとんどの場合、これは正しいはずです。それは、 "ビュー"とは何か、そしてアップデートを引き起こす "イベント"が何であるかによって異なります。 MXリストは、updateList()を使用してupdateDisplayList()を使用してよりよく更新されることがあります。 – JeffryHouser

1

私は個人的にinvalidateDisplayListを呼び出す答えが嫌いです(申し訳ありません。私はそれがあまりにも曖昧で、これがボンネットの下で何をしているのか説明しておらず、またOPの質問で説明されているようなケースで直接呼び出す必要はないはずです。表示/非表示にするグループごとにバインド可能なブール値を作成し、イベントハンドラでブール値を適切な値に設定し、コンテナの表示および包含プロパティにバインドされている場合コンテナは、set visibleとそれに伴うcommitPropertiesを呼び出した後、invalidateDisplayListを内部的に呼び出します。

これは基本的に私が理解しているようにボンネットの下で起こるものです:この方法は、値がコミットされていないか、次のフレームまで表示を更新するために使用されています。 。したがって、リスナー(この場合はコントロールのプロパティを設定する関数)で通知をトリガーするイベントを発生させるバインド可能なプロパティを更新します。このプロパティは、値をコントロールに渡します。 invalidatePropertiesを呼び出します。次のフレームを再描画すると、プロパティフラグがdirty(真)であることを確認してからcommitPropertiesを呼び出し、適切な値を計算/設定します(invalidateSize()とmeasure() invalidateDisplayListを呼び出すと、同じフレームの間、表示リストフラグがダーティであるとみなされ、updateDisplayListを呼び出します。ここではプロパティの値を使用して適切に描画します。

各状態の「アクション」の配列に基づいて、表示リストから子を追加または削除する状態を使用して、これを達成することもできます。

関連する問題