web-dev-qa-db-ja.com

LinearLayoutとRelativeLayout

RelativeLayout in LinearLayout inの利点は何ですか?Android?特定のデザインで、どちらを好むか、そしてその背後にある理由は何ですか??

それはHTMLのような比較可能または類似の(RelativeLayout)<div> ??

71
Soumyadip Das

読む この記事

Android UIツールキットは、かなり使いやすいいくつかのレイアウトマネージャーを提供します。ほとんどの場合、これらのレイアウトマネージャーの基本機能のみがユーザーインターフェイスを実装するために必要です。残念ながら、機能はユーザーインターフェイスを作成する最も効率的な方法ではありません。一般的な例は LinearLayout の乱用で、これはビュー階層内のビューの急増につながります。アプリケーションに追加すると、コストがかかります。初期化、レイアウト、描画が遅くなります。 weight パラメーターを使用する複数のLinearLayoutをネストする場合、レイアウトパスは特に高価になる可能性があります。二回...

RelativeLayoutでは、ビューはその親、RelativeLayout自体、または他のビューのいずれかに整列されます。たとえば、説明がRelativeLayoutの下部に揃えられ、タイトルが説明の上に配置され、親の上部に固定されることを宣言しました。説明がGONEの場合、RelativeLayoutはタイトルの下端をどこに配置するかを知りません。この問題を解決するには、 alignWithParentIfMissing という非常に特殊なレイアウトパラメーターを使用できます。

このブール型パラメーターは、R​​elativeLayoutに、制約ターゲットが欠落しているときにアンカーとして独自のエッジを使用するように単に指示します。たとえば、ビューをGONEビューの右側に配置し、alignWithParentIfMissingをtrueに設定すると、RelativeLayoutは代わりにビューをその左端に固定します。この場合、alignWithParentIfMissingを使用すると、RelativeLayoutはタイトルの下部を独自の下部に揃えます。

...たとえばListViewのすべてのアイテムにこのようなレイアウトを使用する場合、違いはより重要になります...

46
BlackHatSamurai

名前によって、LinearLayoutは、あなたが設定した方向に応じて、垂直または水平のいずれかに直線的にビューを追加します。設計の要件に依存するビューを次々に追加します。そして、RelativeLayoutは互いに関連するビューを追加します。RelativeLayoutで方向を宣言する必要はありません。

たとえば、最初にTextViewを追加し、Android:layout_below="first textview's id"を追加して最初のTextViewで2番目のTextViewを参照するように、2つのTextViewsを下に追加します。 XMLファイル内。この方法で、RelativeLayoutに対処できます。

16
AkashG