首页 > 代码库 > Android开发技巧之使用weight属性实现控件的按比例分配空间

Android开发技巧之使用weight属性实现控件的按比例分配空间

从今天开始,把看书时候的知识点整理成博客,

这个比较简单,估计有经验的都用过,weight属性

 

在做Android布局的时候,经常遇到需要几个控件按比例分配空间的情况

比如下图效果

在底部设置两个button,占据底部宽度一部分的同时,保持1:3的比例,

当然了,这么难看的布局用处不大,仅是用来说明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:weightSum="6"    android:gravity="bottom|center_horizontal" >    <Button        android:id="@+id/bn_main_left"        android:layout_width="0dp"        android:layout_height="wrap_content"        android:layout_weight="1"        android:text="left" />    <Button        android:id="@+id/bn_main_right"        android:layout_width="0dp"        android:layout_height="wrap_content"        android:layout_weight="3"        android:text="right" /></LinearLayout>


其中LinearLayout里面有个weightSum,这个属性是用来设置LinearLayout的weight总和,

Button里面的layout_weight就是用来设置button占据LinearLayout的空间的大小

 

形象一点说,LinearLayout像一个盒子,weightSum设置了盒子的大小为6,

往盒子里放了两个button,给左边button设置layout_weight="1",占据1/6空间,

右边button设置了layout_weight="3",占据3/6空间

这样两个button加起来占据了LinearLayout的4/6,

 

如果没有给LinearLayout设置weightSum的话,则默认为所有控件layout_weight的总和.

 

作者:jason0539

微博:http://weibo.com/2553717707

博客:http://blog.csdn.net/jason0539(转载请说明出处)