1

どこかに保存したメタデータに応じて、プログラムでフラグメントを表示できるアプリを考えています。知っている限り、各フラグメントは対応するFrameLayoutにあることがわかりました。特に、1つのFrameLayoutでアクティビティを作成すると、どのような種類のフラグメントでも、一度に1つのフラグメントしか保存できません。 。ただし、問題は、FrameLayoutが1つしかないのに、メタデータでアクティビティに3つのフラグメントを配置する必要があると宣言されている場合です。

私は2つの可能な解決策を見ます:

1)複数のFrameLayoutを作成し、最終段階で、それらの一部が使用されるかどうか2)複数のフラグメントを何らかの方法で結合して1つの使用可能なFrameLayoutに適合させる

私は解決策が好きではありません1)そして私は2)を達成する方法がわかりません。どのようにそれを見るのですか?1つのフレームレイアウトで複数のフラグメントをアクティビティに動的に追加することは可能ですか?

4

1 に答える 1

1

より多くのフラグメントを画面に追加する必要がある状況では、FrameLayout の使用を避けてください。それを達成することはできません。複数のフラグメントをどのようにレイアウトするかを定義するいくつかの要因があります

  1. すべてのフラグメントは同じサイズですか?
  2. フラグメントを特定の順序で配置する必要がありますか?

最初に空の親レイアウトを作成します (FrameLayout 以外のレイアウト クラスは自由に選択できます)。次に、別の xml ファイルを使用して、親レイアウトの子ビューを定義します。このファイルには、フラグメント プレース ホルダーが含まれている必要があります。インフレータを使用して子ビューを膨張させ、膨張したレイアウトに Fragment を割り当て、最終的にそれを親レイアウトに追加します。この方法により、探しているものをアクティブにすることができます。レイアウトを拡張するときは、レイアウト サイズを指定することを忘れないでください。これにより、必要な種類のレイアウトを実現できます。

于 2012-02-29T05:58:07.553 に答える