web-dev-qa-db-ja.com

LinearLayout、RelativeLayout、およびAbsoluteLayoutの違いは何ですか?

LinearLayout、RelativeLayout、およびAbsoluteLayoutの違いについて混乱しています。誰かがそれらの正確な違いを教えてもらえますか?

167
ezhil

LinearLayoutは、ビューを1つずつ(縦/横に)整列できることを意味します。

RelativeLayoutは、その親からのビューと他のビューの関係に基づくことを意味します。

ConstraintLayoutは、リレーションを使用してウィジェットの位置とサイズを変更するという点でRelativeLayoutに似ていますが、柔軟性が増し、レイアウトエディタでの使用が簡単です。

html、静的ページ、または動的ページをロードするためのWebView

フレーム内のカードのように、FrameLayoutを使用すると、子を上下に配置できます。上下に配置したり、フレーム内の任意の場所に配置できます。

非推奨 - AbsoluteLayoutは、ビューの正確な位置を指定する必要があることを意味します。

詳細については、このアドレスを確認してください https://developer.Android.com/guide/topics/ui/declaring-layout#CommonLayouts

193
Ganapathy C

定義:

  • フレームレイアウト:これは、単一のアイテムを表示するために画面上の領域をブロックするように設計されています。
  • 線形レイアウト:子を1列または1行に配置するレイアウト。
  • 相対レイアウト:このレイアウトは、子ビューを相対位置に表示するビューグループです。
  • テーブルレイアウト:子を行と列に配置するレイアウト。

追加情報:

FrameLayout

FrameLayoutは、単一のアイテムを表示するために画面上の領域をブロックするように設計されています。通常、FrameLayoutは単一の子ビューを保持するために使用する必要があります。子が互いに重ならずにさまざまな画面サイズに合わせてスケーラブルに子ビューを編成するのは難しい場合があるためです。ただし、Android:layout_gravity属性を使用して各子に重力を割り当てることで、FrameLayoutに複数の子を追加し、FrameLayout内での子の位置を制御できます。

子ビューは、一番最近追加された子が一番上になるようにスタックで描画されます。 FrameLayoutのサイズは、表示可能かどうかに関係なく、その最大の子のサイズ(パディングを加えたもの)です(FrameLayoutの親が許可する場合)。

RelativeLayout

RelativeLayoutは、ネストされたビューグループを排除し、レイアウト階層をフラットに保つことができるため、ユーザーインターフェイスを設計するための非常に強力なユーティリティです。これによりパフォーマンスが向上します。ネストされた複数のLinearLayoutグループを使用していることに気付いた場合は、それらを単一のRelativeLayoutに置き換えることができます。

(現在のドキュメント ここ

TableLayout

TableLayoutは、それぞれが行を定義する多数のTableRowオブジェクトで構成されています(実際には、後で説明するように他の子を持つことができます)。 TableLayoutコンテナは、行、列、またはセルの境界線を表示しません。各行には0個以上のセルがあります。各セルは1つのViewオブジェクトを保持できます。テーブルには、セルが最も多い行と同じ数の列があります。テーブルはセルを空のままにすることができます。セルは、HTMLと同じように複数の列にまたがることができます。

列の幅は、その列の最も広いセルを持つ行によって定義されます。


:絶対レイアウトは推奨されません。

47
Devrath

LinearLayout:子を1つの水平方向または垂直方向の行に編成するレイアウト。ウィンドウの長さが画面の長さを超えると、スクロールバーが作成されます。ビューを1つずつ(縦/横に)整列できることを意味します。

RelativeLayout:これにより、子オブジェクトの相対的な位置(子Aの左に位置)、または親(位置合わせされている位置)を指定できます。親の上に)それは、その親からの見解と他の見解との関係に基づいています。

WebView:HTMLページ、静的ページまたは動的ページをロードします。

詳細については、このリンクを参照してください。 http://developer.Android.com/guide/topics/ui/layout-objects.html

3

LinearLayout - LinearLayoutでは、ビューは垂直方向または水平方向に編成されます。

RelativeLayout - RelativeLayoutはLinearLayoutよりもずっと複雑であるため、はるかに多くの機能を提供します。名前が示すように、ビューは互いに対して配置されます。

FrameLayout - これは単一のオブジェクトとして振る舞い、その子ビューは互いに重なり合っています。 FrameLayoutは、最大の子要素と同じサイズになります。

Coordinator Layout - これはAndroidサポートライブラリで導入された最も強力なViewGroupです。これはFrameLayoutとして動作し、その子ビュー間で調整するための機能が多数あります。たとえば、フローティングボタンやスナックバー、スクロール可能なビューを持つツールバーなどです。

3
Tulsi

ここで素晴らしい説明:
https://www.cuelogic.com/blog/using-framelayout-for-designing-xml-layouts-in-Android

LinearLayoutは、要素を水平方向または垂直方向に並べて配置します。

RelativeLayoutを使用すると、特定のルールに基づいてUI要素を調整できます。次のようなルールを指定できます:これを親の左端に合わせる、これをこの要素の左右に配置するなど.

AbsoluteLayoutは絶対位置指定のためのものです。つまり、ビューを配置する位置を正確に指定することができます。

FrameLayoutでは、Z軸に沿ってビューを配置できます。つまり、ビュー要素を上下に重ねることができます。

2
taha027