【Androidアプリ作成】android:layout_weightってなに?

表題そのままですが、この属性を聞いたとき、
layoutの重さだから、きっとレイヤーのことで、軽いと上位レイヤーで、重いと下位レイヤーに
なるんだ!と勝手に想像してみましたが、実際には全く異なります。

layout_weightはオブジェクトを配置するするときの占有比率を指定するときに使います。

つまり指定されたlayout内で、
「このAボタンは1番大きい、BボタンはAボタンの半分で、CボタンはBボタンの半分かな」みたいな
ものを指定したいときがあったとしたならこのlayout_weightが役に立ちます。

例1)

Aボタン
android:layout_weight="1"

Bボタン
android:layout_weight="0.5"

Cボタン
android:layout_weight="0.25"

こうすれば比率が変わります。
ちなみに1を指定すると100%を指定したことになります。
占有比率なので、割合で1は100%に相当しますからねw

ここで、じゃあこうしたらどうなるか・・・

例2)

Aボタン
android:layout_weight="0.5"

Bボタン
android:layout_weight="0.5"

Cボタン
android:layout_weight="0.5"

1ではなく0.5と全部指定。これで、先ほどの例1で指定したBボタンの大きさに
なるかというとなりません。
なぜなら全部同じだと差がないので、全て同じ大きさになります。

一番最初にはじめて組んでもなぜか下に出てこないというときは
このlayout_weightの重み付けがうまくいっていない可能性があります。
私はこれで最初つまづきました。だってHTMLだったら無条件で下に改行されて表示されるから
出てこないわけないという先入観があったからです:;

困ったらとりあえずlayout_weight="1"で指定してみてください。

2011.6.2
神森真昼

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA

*