Android 布局属性 Android:layout_weight 总结
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布局属性,Android 布局学习之——LinearLayout属性baselineAligned的作用及baseline...
相信大家对LinearLayout已经相当熟悉,但你们是否了解它的属性baselineAligned呢? Android官方文档是这么描述的: 那到底这个属性是做什么用的呢? baselineAlig ...
- android 布局属性
android 布局属性 第一类:属性值为true或false android:layout_centerHrizontal 水平居中 android:layout_centerVertical 垂直 ...
- xamarin android 布局,Xamarin.Android 上中下布局
xml代码: xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_par ...
- Android布局属性详解之RelativeLayout
RelativeLayout用到的一些重要的属性: 第一类:属性值为true或false android:layout_centerHrizontal 水平居中 android:layout_cent ...
- Android布局属性大全
第一类:属性值为true或false android:layout_centerHrizontal 水平居中 android:layout_centerVertical 垂直居中 android:la ...
- android布局属性
android:layout_alignParentRight="true" 使当前控件的右端和父控件的右端对齐.这里属性值只能为true或false,默认false. andro ...
- android layout_width 属性,android:layout_weight属性详解
在android开发中LinearLayout很常用,LinearLayout的内控件的android:layout_weight在某些场景显得非常重要,比如我们需要按比例显示.android并没用提 ...
- android布局边缘加深,Android布局属性详解
View的布局显示方式有下面几种:线性布局(Linear Layout).相对布局(Relative Layout).表格布局(Table Layout).网格视图(Grid View).标签布局(T ...
- android布局的属性大全,Android布局属性大全
第一类:属性值为true或false android:layout_centerHrizontal 水平居中 android:layout_centerVertical 垂直居中 android:la ...
最新文章
- 网速测量、流量监控软件 Bandwidth Meter Pro
- Sentinel+Nacos实现Sentinel的持久化规则,就很nice!
- 通过netstat+rmsock查找AIX端口对应进程
- jquery插件 --- 图表 表格
- Delphi中String与PAnsiChar转换
- 华为大数求和 java_大数乘积java
- MRP的数据处理-华北水利水电大学(作业)
- css的3d注意事项
- 老年代的更新机制_如何理解Java GC机制
- Confluence 6 导入 Active Directory 服务器证书 - UNIX
- R导出可编辑图到ppt:结合使用ggplot2以及officer
- sql交叉表查询_初学前端需要注意什么 SQL连接相关内容有哪些
- python判断GET和POST有没有某个参数
- Packet Tracer 5.0建构CCNA实验攻略2配置vlan
- 华为Mate30安装google play服务最全方法
- C语言中do while用法
- nginx负载均衡的5种策略及原理
- 洛谷 P1562 智破连环阵 题解(搜索)
- Steam帝国时代3完全版,每次启动UAC
- QT 5.12 安装MinGW 7.3.0 32bit
热门文章
- 数据分析(排序,数据特征、平均数、方差等,累计统计,相关分析)
- Window上,启动Tomcat服务之后,关闭启动窗口,服务器也随之关闭
- 可变数组集合ArrayList
- 洛谷U4807抽水机[最小生成树]
- jQuery避免$符和其他JS库冲突的方法对比
- 历届试题 密码发生器
- JavaScript的作用域与闭包
- 配置ODBC数据源——找不到SA账户的解决
- Windows Phone开发(35):使用Express Blend绘图 转:http://blog.csdn.net/tcjiaan/article/details/7493010...
- 数据结构之表(5)栈的顺序实现