安卓中layout_weight梳理

整理一下今天看到的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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值