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


回答:


213

LinearLayout ビューを1つずつ(垂直/水平に)配置できることを意味します。

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

ConstraintLayout リレーションを使用してウィジェットの位置とサイズを設定するという点でRelativeLayoutに似ていますが、追加の柔軟性があり、レイアウトエディターで使いやすくなっています。

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

FrameLayout フレーム内のカードのように、子を上下にロードするには、上下またはフレーム内のどこにでも配置できます。

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

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


2
このリンクもチェックしてください。mobiforge.com/designing/story/…
Ganapathy C

2
AbsoluteLayoutは非推奨です。
揚げる

3
@Fry私は2年前にこれに答えました。質問を読んでください。
Ganapathy C

どうやらAbsoluteLayout理由のために廃止されています。コンテンツが収まらない場合、ランダムに物事を投げます。あなたはa LinearLayoutとそのすべてのパディングをに設定することをお勧めし0ます。
EpicPandaForce 2015年

50

定義:

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

詳しくは:

FrameLayout

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

子ビューはスタックに描画され、最後に追加された子が上になります。FrameLayoutのサイズは、表示または非表示(FrameLayoutの親が許可する場合)の最大の子(およびパディング)のサイズです。

RelativeLayout

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

(現在のドキュメントはこちら

TableLayout

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

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


:絶対レイアウトは非推奨です。


4

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

RelativeLayout:これにより、相互(子Bの左側にある子A)または親(親の上部に配置)に対する子オブジェクトの位置を指定できます。それは、その親と他のビューからのビューの関係に基づいています。

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

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


4

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

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

FrameLayout-単一のオブジェクトとして動作し、その子ビューは互いに重なり合っています。FrameLayoutは、最大の子要素ごとにのサイズを取ります。

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


2

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

LinearLayoutは、要素を横または縦に並べて配置します。

RelativeLayoutは、特定のルールに基づいてUI要素を配置するのに役立ちます。次のようなルールを指定できます。これを親の左端に揃える、これをこの要素の左/右に配置するなど。

AbsoluteLayoutは絶対配置用です。つまり、ビューを配置する正確な座標を指定できます。

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.