对LinearLayout中Weight的深度分析
来源:互联网 发布:java 16进制中文 编辑:程序博客网 时间:2024/05/21 05:55
Weight的意义
LinearLayout中weight的意义是对控件宽度和高度进行按比例控制。然而,其中具体的实现逻辑却像一个黑盒子一样。
Weight的内部逻辑
以下便是对weight内部逻辑的实现过程进行深度分析:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" > <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="2" android:text="Button1"/> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="Button2"/></LinearLayout>
以上是一个LinearLayout,里面有两个Button控件。
- weight在其中的意义是:
- 父控件的宽度为m,
- 内部控件1的设置宽度为a,内部控件2的设置宽度为b,以此类推……
- weight的值为w1,w2,w3那么内控控件的实际宽度为A,B 以此类推……
- 公式定义
父控件的总剩余空间 r = m - a - b……;
- A控件分权值 Aw = w1/ (w1+w2+w3);
也就是说:
根据以上公式可得如下结论:
- 当所有组件的宽度一样的时候,那么所有组件最终的显示宽度跟Aw,也就是自身的权重正相关,跟其自身的宽度设置无关。
- 当所有组件的宽度和大于父控件的时候,此时剩余控件则为负值。因此,此时的权重也就成负值,也就是负相关。
- 以上两个结论可以单独存在,也可以共同存在。
表解释:
1. 分权正相关:结果就是分权所分的空间2. 分权负相关:结果刚好与分权所分的空间相反,分权值越大,所分空间越小3. 分权弱相关:结果与分权值在表面上没有明显的体现,需要代入公式进行计算才能得出最后的结果。
宽度与Weight的关系:
组件的宽度设置与Weight的关系:
0 0
- 对LinearLayout中Weight的深度分析
- LinearLayout中weight的学习
- Android-LinearLayout的weight属性分配原则分析
- LinearLayout(线性布局)中weight的难点
- LinearLayout的weight
- LinearLayout中weight在小米上兼容的问题
- Android中LinearLayout布局的Weight属性详解
- android LinearLayout的weight问题
- LinearLayout的weight(权值)详解
- 浅析LinearLayout的weight属性
- LinearLayout的weight(权重属性)
- Java中对HashMap的深度分析
- Java中对HashMap的深度分析
- Java中对HashMap的深度分析
- Java中对HashMap的深度分析
- Java中对HashMap的深度分析
- Java中对HashMap的深度分析
- Java中对HashMap的深度分析
- UI设计里面的三个小项,学习学习!
- Cocos2d-x 3.6版本学习笔记-热更新
- lua 学习笔记 二
- 对云子android客户端实例简单技术解析
- Item控件抢占焦点的解决方案
- 对LinearLayout中Weight的深度分析
- 443A - Anton and Letters
- 枚举驱动设备,并获得驱动文件,查看派遣函数的小工具
- socket--basic programming
- uva 12100
- 约束
- Android Studio 基本设置图解教程
- WIP backflush 流程
- CentOs 安装mysql冲突解决方法