web-dev-qa-db-ja.com

FrameLayoutの代わりにLinearLayoutを使用しても問題ありませんか?

2つのフラグメントで構成される1つのアクティビティMainActivityを使用してアプリケーションを構築しています。そして、フラグメントレイアウトの親コンテナとしてFrameLayoutを使用する多くのチュートリアルに出くわしました。

ただし、フラグメントの親コンテナとしてLinearLayoutを引き続き使用でき、(これまでのところ)完全に正常に機能することがわかりました。

私の質問ですが、フラグメントレイアウトの親コンテナとしてFrameLayoutを使用しないことによる副作用はありますか?

存在しない場合、フラグメントレイアウトの親コンテナとしてFrameLayout(または他の可能なレイアウト)よりもLinearLayoutを使用する利点は何ですか。

13
fruqi

Fragments自体は他のViewと同じようにレンダリングされるため、レイアウトの外観に応じて、任意の親ViewGroupを使用できます。これは、LinearLayoutFrameLayoutを結び付けたFragmentsの固有の利点がまったくないことを意味します。

FrameLayoutLinearLayoutの主な違いは、ViewsFrameLayout内にスタックすることです。

つまり、Fragmentsを重複させる可能性がある場合は、FrameLayoutを使用します。それらを線形に表示する場合は、LinearLayoutを使用します。フルスクリーンのFragmentの場合は、どちらを選択してもかまいません。

8
trevor-e

それは完全に大丈夫です。使用できます。しかし、一般的に:

LinearLayoutは、ビューを1つずつ垂直または水平に配置するために使用されます。複数の子ビューがそれに応じて配置できるようにします。

FrameLayoutは、ビューを上下にロードするために使用されます。したがって、FrameLayoutでは複数のビューを管理することが難しいため、FrameLayoutを使用して単一の子ビューを保持します。例の場合単一のCardViewを使用する場合は、FrameLayoutが最適です。

3
Pitty