LoginSignup
0
0

More than 5 years have passed since last update.

layout_weight

Posted at

layout_weightの留意点

layout_weightは、複数のViewを任意の大きさの割合で配置することができるコマンドであり、とても有益である。このコマンドの留意点は次のとおりである。
絶対の位置では無く、相対的な位置を設定する。このため、物理画面の大きさの違いに関係無く、全てのサイズの画面に対応できる。
横方向で使う場合:layout_widthの値を"0dp"にすること。具体的には次のように書く。android:layout_width="0dp"
この値を"fill_parent"にした場合、layout_weightの数値が低いViewが大きく配置される。物好きな人はお試しください。
この値を"wrap_content"にした場合、各Viewの配置割合は不正確になる。
縦方向で使う場合には、(layout_widthを0dpにするのではなく)layout_heightの値を"0dp"にする。
layout_weightで指定した大きさを超える長い文字列がViewに代入された場合、layout_weightの指定が優先適用され、指定された方向にはサイズは伸びない。そして、Viewは、layout_weightによる指定が無い方向に伸びていく。
android:weightSumに代入する値が、各layout_weightの値の合計よりも多い場合、その多い分が余白となる。つまり、 android:weightSumは余白を設けるコマンドである。
android:weightSumは設けなくても良い。この値が、各layout_weightの値の合計と同一であるならば、android:weightSumを書く意味は無い。
LinearLayoutの子Viewにだけしか使えない。ただし、LinearLayoutを継承したViewGroupの子Viewにも使える。例えば、RadioGroupの子ViewであるRadioButtonにも使える。
LayoutInflaterを用いて追加するViewでは、inflater()の第二引数に親のLinearLayoutを指定することによって、layout_weightが有効に機能する。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0