71

androidのRelativeLayoutoverの利点は何ですか? LinearLayout特定のデザインについて、あなたはどちらを好みますか?その理由は何ですか??

それ(RelativeLayout)はHTMLのように同等または類似しています<div>か??

4

2 に答える 2

46

この記事を読む:

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

RelativeLayoutでは、ビューはその親、RelativeLayout自体、または他のビューのいずれかに配置されます。たとえば、説明がRelativeLayoutの下部に配置され、タイトルが説明の上に配置され、親の上部に固定されることを宣言しました。説明がなくなったため、RelativeLayoutはタイトルの下端をどこに配置するかを認識していません。この問題を解決するには、alignWithParentIfMissingと呼ばれる非常に特別なレイアウトパラメータを使用できます。

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

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

于 2012-07-06T08:43:47.170 に答える
17

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

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

于 2012-07-06T05:51:41.983 に答える