Layout_weight属性

为了调剂一下心情,穿插一篇Android基础文档。

 

一、      简介

  android:layout_weight在LinearLayout中布局属性。根据权重布局。

二、      功能介绍

  android:layout_weight的默认值是0。

  当layout_weight被设置为有效值的时候,布局会计算两次。

  布局的计算公式:

  View的大小=View所占空间+父容器的剩余空间*权重比

三、      使用

  使用layout_weight布局时,一般有两种方式

    l  android:layout_width=”0dp” ---- Google推荐

    l  android:layout_width=”match_parent”

 

  当layout_width=”0dp”时,权重值越大View所占的空间越大

  当layout_width=”match_parent”时,权重值越大View所占的空间越小

 

  套用布局的计算公式:

  设父LinearLayout的长度为L,子View个数为N

  View的大小=View所占空间+父容器的剩余空间*权重比。

  当layout_width=”0dp”时,View的大小=  0 + (L- 0*N)* 权重比

  当layout_width=” match_parent”时,View的大小=  L + (L – L*N)* 权重比

 

  有趣的例子:

  导入实际数值:子View个数为3,权重分别是1、2、3

  权重为1的View:

  当layout_width=”0dp”时,View的大小 =  0 + (L- 0*3)* 1/6 = L/6

  当layout_width=”match_parent”时,View的大小=  L + (L – L*3)* 1/6=L+ (-2L)/6= 4L/6

  权重为2的View:

  当layout_width=”0dp”时,View的大小 =  0 + (L- 0*3)* 2/6 = 2L/6

  当layout_width=”match_parent”时,View的大小=  L + (L – L*3)* 2/6=L+ (-4L)/6= 2L/6

 

  权重为3的View:

  当layout_width=”0dp”时,View的大小 =  0 + (L- 0*3)* 3/6 = 3L/6

  当layout_width=”match_parent”时,View的大小=  L + (L – L*3)* 3/6=L+ (-4L)/6= 0L/6=0

 

  这里会发现[权重为3的View]在宽度为match_parent时计算得到的宽度为0!!

 

PS:

父控件可以设置一个神奇的属性使weight布局更灵活,android:weightSum="1”

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值