Android 布局属性 Android:layout_weight 总结
来源:互联网 发布:类似whatsapp的软件 编辑:程序博客网 时间:2024/05/17 19:59
Android 为我们提供了五种布局方式
- 线性布局:LinerLayout
- 表格布局:TableLayout
- 相对布局:RelativeLayout
- 绝对布局:AbsoluteLayout
- 帧布局:FrameLayout
其中最常用的应该就是线性布局了。而在线性布局中有一个属性layout_weight。这个属性的字面意思是权重,就是说可以通过这个属性来设置控件在线性布局中的大小比例。
但是在使用中我们发现,当线性布局中的控件使用match_parent时控件大小与权重比例居然相反,而使用wrap_content时甚至weight甚至毫无作用。这是为什么呢?
按照Google官方的说法,layout_weight属性是用来分配Linerlayout中剩余的屏幕空间的。
现在我们来做一下算术题:
假设屏幕宽度是W,LinerLayout的布局方式是横向,宽度是屏幕宽度即W。Linerlayout中有两个控件,宽度都是match_parent即W.现在定义两个控件左边的为2,右边的为1.
现在我们来算一下,两个控件的宽度:
剩余宽度 S = W - 2*W = -W.
左边控件分配到的剩余宽度 SL = (2/3)*S =-(2/3)W
右边控件分配到的剩余宽度 SL = (1/3)S = -(1/3)W
那么左边控件的实际宽度就是 -(2/3)W+W = (1/3)W
那么右边控件的实际宽度就是 -(1/3)W+W = (2/3)W
于是权重设置为2:1 但实际显示效果却是1:2就是这样来的。有兴趣的同学可以算一下使用wrap_content时显示的比例。可以发现根本毫无规律。
那么我们就不用layout_weight这一属性了吗?
当然不是
按照Google官方推荐的方法,在使用layout_weight时。可以将width设置为0dp(当然布局方式是竖向的时候是height)。
希望对看到这篇文章的人有帮助:D
- Android 布局属性 Android:layout_weight 总结
- Android布局的layout_weight属性
- android布局中的layout_weight属性
- Android 布局属性layout_weight不起作用?
- Android布局属性Layout_weight的标准解释
- Android布局之Layout_weight属性解析
- 布局属性:android:layout_weight完全解读!
- Android 布局 LinearLayout 的 layout_weight 属性
- Android布局中Layout_weight的属性
- Android百分比布局之layout_weight属性
- Android布局中Layout_weight的属性
- Android布局中Layout_weight属性详细介绍
- Android布局中Layout_weight的属性
- Android LinearLayout布局的layout_weight属性探究
- Android布局中Layout_weight的属性
- android 布局控件中 Layout_weight属性
- android布局---android:layout_weight
- android---android:layout_weight属性
- 易语言学习第五课
- 最简单是使用viewpager的方法
- IDEA 中的简单单元测试配置
- hdu 5651 组合数学+费马小定理求逆元
- 微信支付--WeixinJSBridge--验证通过
- Android 布局属性 Android:layout_weight 总结
- java 抽象类和接口的理解
- IOS单元测试中的断言
- RecyclerView详细了解
- qnx修改ip地址方法
- Android Studio 几个非常有用的工具
- Java的静态方法继承相关
- PAT (Basic Level) Practise (中文)1031. 查验身份证(15)
- iOS苹果手机适配代码