<\include> タグと <\ViewStub> タグの違いと、レイアウトを設計する際にどちらが望ましいか。
ありがとう、
ヴェヌ
< include /> は、全体が 1 つの大きなファイルであるかのように、xml コンテンツをベース xml ファイルに含めます。これは、異なるレイアウト間でレイアウト パーツを共有するための優れた方法です。
< ViewStub /> は直接含まれていないため、少し異なります。実際に使用する/必要な場合、つまり、可視性をVISIBLE
(実際には可視) またはINVISIBLE
(まだ可視ではないが、そのサイズはもう 0 ではありません)。大量の小さなビューやヘッダーを含む複雑なレイアウトがどこにでもあり、Activity の読み込みが非常に高速であるため、これは優れた最適化です。これらのビューのいずれかを使用すると、読み込まれます。
タグのおかげで、Android ではレイアウトの共有と再利用が非常に簡単です。ありがたいことに、Android には ViewStub と呼ばれる非常に特別なウィジェットが用意されています。これにより、めったに使用されないビューでユーザー インターフェイスを汚染することなく、 のすべての利点が得られます。
ViewStub は、ダムで軽量なビューです。次元がなく、何も描画せず、レイアウトにはまったく関与しません。これは、ViewStub を拡張するのが非常に安価であり、ビュー階層に保持するのが非常に安価であることを意味します。ViewStub は、遅延インクルードとして最もよく説明できます。ViewStub によって参照されるレイアウトは、ユーザーが決定した場合にのみ、拡張されてユーザー インターフェイスに追加されます。
もう 1 つの重要な違いは、レイアウトの膨張に関するものです。XML で既に静的に拡張されているレイアウトを変更することはできません。ビューを置き換えて、レイアウト パラメータをプログラムで設定する必要があります。(たとえば)高さ、幅などを定義し、実行時にさまざまなレイアウトを膨らませることができます