Android の weight 属性の設定方法
Android では、レイアウトの大きさを指定する android:layout_weight 属性を使用できます。この属性は、LinearLayout と RelativeLayout レイアウトでビューの相対的なサイズを調整するために使用されます。
LinearLayoutでは、android:layout_weight属性を子ビューに適用して、親ビューにおける相対的な大きさを指定できます。この属性の値は、レイアウトの中でビューが占める重さの割合を表す浮動小数点数です。例えば、あるビューの重みが2で、別のビューの重みが1の場合、前者の大きさは後者の2倍になります。
次のような例を示します。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="TextView 1" />
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2"
android:text="TextView 2" />
</LinearLayout>
上記のサンプルでは、親LinearLayoutのorientation属性がhorizontalに設定され、子ビューは水平に並べられることを表します。2つのTextView子ビューはどちらもandroid:layout_weight属性を使用して相対的な大きさを指定しており、一方は重み1、もう一方は重み2となっています。このため、最初のTextViewは親ビューの1/3のサイズを占め、2番目のTextViewは親ビューの2/3のサイズを占めます。
レイアウトにandroid:layout_weight属性を使用すると、相対配置するビューに対して重みによるスペースの配分が行えます。またandroid:layout_alignParentLeft, android:layout_alignParentRight, android:layout_alignParentTop, android:layout_alignParentBottomなどの関連属性を使用することで、ビューが親ビューに対してどのように整列するかの指定が可能です。必要に応じて適宜、調整や組み合わせを行ってください。
android:layout_weightプロパティはLinearLayout、RelativeLayoutのみ有効ですのでご注意ください。その他のレイアウトタイプでは類似の効果を得るために別のプロパティや技術を使う必要があります。