Android基础之——Linerlayout中layout_weight的使用

Layout Weight

 

layout_weight是安卓线性布局Linear Layout中的一个很常用比较很好用的属性,这个属性通过权重来控制控件的大小分配,在很多地方非常实用

下面举几个例子来说明一下。

 

    

 

第一个列子中 message的大小如果按照正常的情况来说很不好定义,如果定义为fillparent,那么send按钮就会被挤出去。如果用具体的数值或者用wrap_contentd的话,对于不同屏幕大小的手机或者对于不同的message大小,显示的效果不一样,不利于统一界面,影响美观度。

这个时候,将message部分的控件高度设置为0dip,加上权重weight为1 就可以很好的解决这个问题 在所有的手机上面都会如上图所示的布局来显示

<?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:paddingLeft="16dp"
    android:paddingRight="16dp" >

    <EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="@string/to" />

    <EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="@string/subject" />

    <EditText
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:gravity="top"
        android:hint="@string/message" />

    <Button
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:text="@string/send" />

</LinearLayout>


第二个例子中 需求是三个按钮很平均的分布在同一行,这种情况,使用具体的宽度值显然是很不合适的,对于不同大小屏幕的手机来说,显示效果会出现很大的不同,使用wrap_content显然也不合适,不同按钮的长度可能出现不一样的情况,无法满足需求,这个时候,使用weight属性,就可以很高的解决这个问题,将每个按钮button的宽度权重设为1,表示,每个按钮的权重相同,将宽度均分到每一个按钮身上,这样就可以很好的解决屏幕失配的问题。

同理:进行固定比例的分配都可以用weight来进行处理

 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:layout_marginTop="30dip"
    >

    <Button 
        android:layout_width="0dip"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="按钮1"
        />
    
    <Button 
        android:layout_width="0dip"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="按钮2"
        />
    
    <Button 
        android:layout_width="0dip"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="按钮3"
        />

</LinearLayout>



 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值