このページでは、ビジュアルツリーで要素を管理するにあたって推奨される方法を説明します。
要素を作成して階層に読み込む処理は時間がかかります。これを回避するには、要素をあらかじめ階層に作成しておき、display:none
を使ってそれらを非表示にし、必要な時にだけ表示します。ただし、多くの要素を同時に作成すると、より多くのメモリが消費される場合があります。
要素のプール (プーリング) とは、要素を毎回 new()
で作成して解放する代わりに、後で再作成する可能性のある要素を保持しておくことです。
プールする全ての要素を完全に管理し、プールに戻す前にきちんとリセットすることが重要です。これを行わないと、プーリングシステムが不安定になり問題が発生する場合があります。例えば、イベントコールバックの登録中やシリアル化されていない内部状態の設定中に要素のプーリングを行うと、特定の要素をクリーンアップすることが不可能になります。
ビジュアル要素の数を少なくするには、可能な限り ListView を使用します。ListView は、要素をプールし、ユーザーのスクロールに応じて要素をリサイクルします。
代替として、ListView に似たプールとリサイクルの仕組みを独自に実装し、以下を使用して可視領域を管理することも可能です。
GeometryChangedEvent
を使用します。VisualElement.layout
プロパティを使用します。