web-dev-qa-db-ja.com

オーバーレイのFrameLayout vs RelativeLayout

アプリにオーバーレイ(半透明)画面を実装する必要があります。これは Showcase View に似ています。

私の推測では、このユースケースにはFrameLayoutを使用することでした。これは、アイテムを互いの上にスタックするために使用されるためです。しかし、上記のライブラリがRelativeLayoutを使用していることに驚きました。

私の質問は、FrameLayoutをいつ使用するか、このような場合ではない場合ですか? FrameLayoutを使用する場合のデメリットは何ですか?

58
Jaguar

レイアウトを選択する際の一般的な経験則は、ネストされたレイアウトビューの数が最小になる組み合わせを選択することです。

あなたの質問に固有の、RelativeLayoutは、はるかに単純なFrameLayoutよりも大きく、より機能的です。したがって、単純なレイアウトの場合、後者の方がおそらくより効率的です。ただし、RelativeLayoutを使用して配置オプションを追加すると、GUIをより少ない数のレイアウトビューで実装できる場合は、おそらくそれがより良い選択です。

ここにページがあります これは、いくつかのトレードオフについて説明し、レイアウトを設計するときに使用する便利なツールを示しています。ほとんどはRelativeLayoutとLinearLayoutについて説明しますが、RelativeLayoutとFramelayoutのどちらかを選択するのにも適しています。 FrameLayoutはさらにシンプルなレイアウトであることに注意してください。

編集(2017):さらに複雑なレイアウトの場合、ConstraintLayoutを使用して、ネストされたレイアウトを回避できる場合があります。

58
scottt