读书笔记_《50 Android Hacks》之一 linearlayout的weightsum及weights

    最近在读《50 Android Hacks》,准备谢谢读书笔记,并不断丰满一下。

  听到过这样的问题,“如果我想让一个button占父控件的50%,应该怎么办”。

      通常来说,我们可以使用linearlayout其中的属性  android:layout_weight属性

  在实现方法上来说,有几种方法来实现.

     android的设备有不同的size,对于不同的屏幕尺寸,我们应该有一种普遍

  适用的方法。

        我们可以使用layout_weight以及weightSum属性来填满layout的剩余空间。

  其中android:weightSum定义了一个weight的最大值。如果weightSum属性

  为定义的话,它等于其包含的所有子控件的weight之和。对于上面的问题来说,

  可以给控件中唯一的字空间设置layout_weight为0.5,而设置weightSum为1.0

    设想一下,我们要在一个盒子里面放置物品。盒子的可用空间就是weightSum,

     而对应的layout_weight属性则表明了盒子中物品所占的空间。举一个简单的例子,

  整个盒子的weightSum为1,其中有两个控件,a和b,其中a的layout_weight为

  0.25,b的layout_weight为0.75.所以控件a拥有25%的空间,控件b拥有75%的

  空间。

    那么我们回到开始的问题,我们给出父控件的weightSum,然后给予子控件的

  button其属性android:layout_weight取其一半值。其中xml属性如下

   <?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:background="#ffffff"

android:gravity="center"

android:orientation="horizontal"

android:weightSum="1">

  <Button

  android:layout_width="0dp"    //获取button的宽度

 android:layout_height="wrap_content"

 android:layout_weight="0.5"    //占据剩余空间的50%

android:text="Click me"/>

</LinearLayout>

 

LinearLayout获得 android:weightSum属性,并规定所有子控件的weight之和为1.

然后由于  1,button为唯一的子控件。   2.宽度设为0dp,  然后基于weigth属性0.5

所以整个button占据父控件的50%。

所以如果linearlayout的宽度为200dp,其属性android:weightSum=1.然后会有如下计算公式

button width+button weight*200/sum(weight).

对应到具体是实例为  0dp+0.5*200/1=100

 

转载于:https://www.cnblogs.com/pangziwang/p/5001862.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值