2012年03月12日

weightSumとlayout_weight


親ウィジェットにweightSum属性を指定するとで
内部の子ウィジェットの合計値とすることができます
子ウィジェットのlayout_weightと合わせて設定すると
余白部分を含めたレイアウトが可能です
layout_weight属性

たとえば親のViewGroupのweightSumを10とし
子のViewのButton1とButton2のlayout_weightを
それぞれ5と3とするとButton1に5/10が
Button2に3/10が、残りが余白部分の2/10となります
例をxmlソースで示します
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent"
	android:orientation="vertical" 
	android:weightSum="10">

    <Button
    	android:id="@+id/button1"
    	android:layout_width="fill_parent"
    	android:layout_height="0px"
    	android:layout_weight="5"
    	android:text="Button1" />


    <Button
    	android:id="@+id/button2"
    	android:layout_width="fill_parent"
    	android:layout_height="0px"
    	android:text="Button2" android:layout_weight="3"/>

</LinearLayout>
自身の大きさの誤差をなくすため
android:layout_height="0px"
を入れることを忘れないでください
device49.png
スポンサードリンク

posted by kenken at 18:57 | Comment(0) | TrackBack(0) | レイアウト カスタマイズ | このブログの読者になる | 更新情報をチェックする

layout_weight属性


layout_weight属性は親ウィジェットの余白部分を
どの程度の割合で子ウィジェット同士で分け合って使うかの設定値です
例として画面を2つのボタンで1:3に分割するよう設定しました
device48.png

これはLinearLayoutの縦方向の余白部分にあるボタンにそれぞれ
layout_weight="1"
layout_weight="3"を設定したものです
xmlソースファイルは
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent"
	android:orientation="vertical" >

    <Button
    	android:id="@+id/button1"
    	android:layout_width="fill_parent"
    	android:layout_height="0px"
    	android:layout_weight="1"
    	android:text="Button" />


    <Button
    	android:id="@+id/button2"
    	android:layout_width="fill_parent"
    	android:layout_height="0px"
    	android:text="Button" android:layout_weight="3"/>

</LinearLayout>
一つ注意しなければならないのは
android:layout_height="0px"
としているところです
layout_weight属性は余白を分割する機能であるため
子ウィジェット自身(この場合はbutton)の大きさを入れていません
そのため正確に1:3に分割するにはlayout_heightを0pxに設定させる必要があります
もちろん横方向に分割するときはlayout_widthを0pxにさせます

スポンサードリンク

posted by kenken at 17:21 | Comment(0) | TrackBack(0) | レイアウト カスタマイズ | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。