android:layout_weight

本文详细介绍了在Android开发中如何使用LinearLayout的layout_weight属性来灵活分配视图组件的宽度和高度。通过示例展示了当多个组件拥有相同的权重时如何平均分配空间,并讨论了组件宽度设置对布局的影响。
摘要由CSDN通过智能技术生成

父视图剩余的空间分配给设 置了layout_weight的组件。这个属性可以让LinearLayout里不同的组件分配不同宽度/高度变得非常灵活。默认的 android:layout_weight = 0,即缺省。layout_weight的值越大,所占比例也越大。

 

<?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:layout_width="wrap_content" 
    android:layout_height="fill_parent"
     android:gravity="center_horizontal"
    android:text="red"
     android:layout_weight="1"
    android:background="#aa0000"
    />
    <TextView  
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent"
     android:gravity="center_horizontal"
    android:text="green"
     android:layout_weight="1"
    android:background="#00aa00"
    />
    <TextView  
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent"
     android:gravity="center_horizontal"
    android:text="blue"
     android:layout_weight="1"
    android:background="#0000aa"
    />
<TextView  
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent"
     android:gravity="center_vertical"
    android:text="yellow"
     android:layout_weight="1"
    android:background="#aaaa00"
    />
</LinearLayout>
 

 

 这里4个TextView控件都带有 android:layout_weight属性,且值都是1,所以将子LinearLayout的空间平均分成了4份。

android:gravity属性的作用是设置组件与 组建or文字 之间的对齐方式,主要有

center_vertical、center_horizontal、center、top、等等值,上面的代码效果如图:

 

如果将TextView改为 android:layout_width="wrap_content" ,效果变为:

 

 

 

各颜色条的宽度是不一致的,因为red,green,blue和yellow这几个字符串的长度不一样。

 

如果想既保持字符串不一致,又想得到相同宽度的颜色条,可以把TextView中的属性android:layout_width值改为"fill_parent"

 

将代码中红色TextView的layout_weight修改为2,显示效果如下:

由于字符串长度不一致,所以这里并不是2:1:1:1的比例.

 

原文来自:

http://hi.baidu.com/hbzha/blog/item/8af2b44f9bd8bd1eb2de055b.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值