您的位置:首页 > 其它

安卓中layout_weight的使用

2015-10-22 20:34 253 查看
整理一下今天看到的layout_weight的使用:

第一个效果:

只有一个控件的时候,想要在控件中居中显示 :

父容器中:android:weightSum="2"

子控件:android:layout_weight="1"

两个属性声明之后,这样控件就能在父控件中居中显示了





----------------------------------------------------------------

普通的layout_weight使用:子控件声明0dp 然后按照weight进行分配





这样父控件就按照weight进行分配了 分别为1/6 , 2/6 , 3/6

--------------------------------------------------------------------

如果我们第一个TextView的layout_width声明为wrap_content的话 ,父控件会默认减去wrap_content占用的宽度 ,然后将剩下的宽度进行分配



在分配的时候,父控件会减去wrap_content占用的宽度,然后将剩下的宽度进行分配



--------------------------------------------------------------------------------------------------------------

如果同样的情况,第一个TextView的Layout_width改成0dp 会发生的效果是,第一个TextView的效果如图





居然没有对齐,----- 其实是对齐了 ,,因为子控件会根据父控件的基线去对齐, 在父控件中声明baseLineAligned = "false"即可

-------------------------------------------------------------------------------------------------------





----------------------------------------------------------------------------------------

再如果我们把所有textView的宽度设为match_parent的时候会出现下面的情况



为什么第三个不见了,因为weight在计算的时候会先减去控件声明所占用的宽度,然后将剩余的宽度进行分配

假设屏幕宽度为480 那么 第一个TextView的宽度 480 第二个480 第三个 480

我们的weight会用屏幕宽度减去三个TextView的宽度

480 - 480*3 = -960 没错.是负的,

然后将这宽度进行分配,

第一个TextView占用的宽度:

480 -480*2 * 1/6

第二个

480 - 480*2 * 2/6

第三个

480 - 480*2* 3/6
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: