2011.10.13(4)——— android android:layout_weight

2011.10.13(4)——— android android:layout_weight

参考:[url]http://hi.baidu.com/hbzha/blog/item/8af2b44f9bd8bd1eb2de055b.html[/url]


1、

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:text="red"
android:background="#aa0000"
android:layout_width="wrap_content"
android:layout_height="100dip"/>
<TextView
android:text="green"
android:background="#00aa00"
android:layout_width="wrap_content"
android:layout_height="100dip"/>
<TextView
android:text="blue"
android:background="#0000aa"
android:layout_width="wrap_content"
android:layout_height="100dip"/>
<TextView
android:text="yellow"
android:background="#aaaa00"
android:layout_width="wrap_content"
android:layout_height="100dip"/>
</LinearLayout>


[size=x-large]水平布局 textview的宽都是wrap_context

效果如下:[/size]

[img]http://dl.iteye.com/upload/attachment/569747/d817adfc-f712-3b7b-8bab-b87fe4f1daf3.jpg[/img]


2、

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:text="red"
android:background="#aa0000"
android:layout_width="wrap_content"
android:layout_height="100dip"
android:layout_weight="1"/>
<TextView
android:text="green"
android:background="#00aa00"
android:layout_width="wrap_content"
android:layout_height="100dip"/>
<TextView
android:text="blue"
android:background="#0000aa"
android:layout_width="wrap_content"
android:layout_height="100dip"/>
<TextView
android:text="yellow"
android:background="#aaaa00"
android:layout_width="wrap_content"
android:layout_height="100dip"/>
</LinearLayout>


[size=x-large]水平布局 textview的宽都是wrap_context 修改red的weight为1

效果如下:[/size]

[img]http://dl.iteye.com/upload/attachment/569749/8d6c3200-8795-35e9-b69e-1a07f6313a89.jpg[/img]


[color=red]通过1和2 可以得到结论:
在Horizontal的LinearLayout中,控件A和控件B的layout_weight分别设置为2和1,并不代表两者的宽度之比为2:1,2:1针对的是剩余的宽度。 控件的宽度等于空间本身需要的最小宽度,加上剩余宽度中的所占的权重。垂直方向的LinearLayout也同理。[/color]

3、

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:text="red"
android:background="#aa0000"
android:layout_width="wrap_content"
android:layout_height="100dip"
android:layout_weight="1"/>
<TextView
android:text="green"
android:background="#00aa00"
android:layout_width="wrap_content"
android:layout_height="100dip"
android:layout_weight="1"/>
<TextView
android:text="blue"
android:background="#0000aa"
android:layout_width="wrap_content"
android:layout_height="100dip"
android:layout_weight="1"/>
<TextView
android:text="yellow"
android:background="#aaaa00"
android:layout_width="wrap_content"
android:layout_height="100dip"
android:layout_weight="1"/>
</LinearLayout>


[size=x-large]水平布局 textview的宽都是wrap_context 修改所有的textview的weight为1

效果如下:[/size]

[img]http://dl.iteye.com/upload/attachment/569751/09cff760-def8-3887-96ad-e0993591cc94.jpg[/img]

[size=x-large]可以看出来 textview并不是按照1:1:1:1的比例占据宽度的 所以正好验证了上面的结论[/size]

4、
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:text="red"
android:background="#aa0000"
android:layout_width="fill_parent"
android:layout_height="100dip"
android:layout_weight="1"/>
<TextView
android:text="green"
android:background="#00aa00"
android:layout_width="wrap_content"
android:layout_height="100dip"/>
<TextView
android:text="blue"
android:background="#0000aa"
android:layout_width="wrap_content"
android:layout_height="100dip"/>
<TextView
android:text="yellow"
android:background="#aaaa00"
android:layout_width="wrap_content"
android:layout_height="100dip"/>
</LinearLayout>

[size=x-large]
水平布局 red的宽为fill_parent 并且weight为1,其他textview的宽都是wrap_context

效果如下:[/size]

[img]http://dl.iteye.com/upload/attachment/569757/6d8b2781-7fb3-39ec-9229-039e2ac80d24.jpg[/img]

[color=red]我们明明设置了red的weight为fill_parent 它却没有填充真个屏幕
所以通过上面的结果 我们可以得到一个信息:

当使用了layout_weight属性时,该属性优先于width和height属性。[/color]


5、


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:text="red"
android:background="#aa0000"
android:layout_width="fill_parent"
android:layout_height="100dip"
android:layout_weight="1"/>
<TextView
android:text="green"
android:background="#00aa00"
android:layout_width="wrap_content"
android:layout_height="100dip"
android:layout_weight="1"/>
<TextView
android:text="blue"
android:background="#0000aa"
android:layout_width="wrap_content"
android:layout_height="100dip"
android:layout_weight="1"/>
<TextView
android:text="yellow"
android:background="#aaaa00"
android:layout_width="wrap_content"
android:layout_height="100dip"
android:layout_weight="1"/>
</LinearLayout>


[size=x-large]水平布局 red的宽为fill_parent 其他textview的宽都是wrap_context 修改所有的textview
的weight为1

效果如下:[/size]

[img]http://dl.iteye.com/upload/attachment/569771/21d1f9b9-8347-3589-9fcc-a602694a2191.jpg[/img]

[size=x-large]这个不明白。。。。
[/size]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值