LinearLayout源码解析
来源:互联网 发布:乌鲁木齐网络问政 编辑:程序博客网 时间:2024/06/13 21:16
LinearLayout源码解析
1.LinearLayout中最重要的部分:orientation Measure weight
2.orientation:分为Horizontal vertical 两种方向的原理是类似的,所以这里只分析vertical垂直方向
measure
1.定义一些列的参数
2.循环LinearLayout中的子view,并且测量他们的高度,当子view设置了weight属性,就给个标记,并且跳过该view的高度的测量
3.对于设置了weight属性的view进行测量,此时分两种情况,子控件的高度是否为0,父控件的测量模式是否为Exactly
weight
1.测量的结果是由父控件的测量模式和子控件的LayoutParams共同决定的
2.当父view的测量模式为Exactly时,如果,子view设置了weight,并且height==0,此时,测量的结果和我们分配的weight是一致的;
3.当父View的测量模式为Exactly时,如果,子view设置了weight,并且height设置为match_parent或者具体的数值时,测量的结果跟我们分配的weight是相反的;
4.当父View的测量模式为At_Most时,如果子View设置了weight,那么子View的高度会被强行设置为wrap_content,然后按照wrap_content模式进行测量
5.当父view的测量模式为At_Most时,如果子View没有设置weight,那么子View的高度跟其他viewGroup一致
参数解释
1.父类的测量模式:
EXACTLY——一般是设置了具体的值或者match_parent
当前尺寸就是当前View应该取的尺寸
AT_MOST—-wrap_content
当前尺寸是当前View能取的最大尺寸
UNSPECIFIED(不常用)
父容器没有对当前View有任何限制,当前View可以任意取尺寸
2.子类的布局参数:LayoutParams(layoutParams.weight)
- LinearLayout源码解析
- LinearLayout源码解析
- Android LinearLayout(7.1) 源码解析
- Linearlayout 测量过程源码解析(一)
- Linearlayout 测量过程源码解析(二)
- LinearLayout源码简单查看
- Android LinearLayout布局解析
- LinearLayout layout_weight解析
- LinearLayout布局的解析
- Android LinearLayout属性解析
- Android的LinearLayout源码分析
- LinearLayout中的Layout_weight的解析
- LinearLayout线性布局measure流程源码分析
- 自定义控件,从LinearLayout源码谈起
- Android LinearLayout布局中 layout_weight解析
- LinearLayout
- LinearLayout
- Linearlayout
- ES6数组实现并集、交集、差集
- 成功输出消息后的采购订单不能取消审核
- Python提取HM编码结果的批处理
- TP5 foreach2级嵌套循环
- Java代码规范
- LinearLayout源码解析
- 火焰图(flame graph)性能分析器
- HDU-4282 A very hard mathematic problem 技巧枚举+二分
- 利用Beef劫持客户端浏览器
- 移动硬盘的文件在mac系统中呈现灰色的解决方法
- java.lang.IllegalArgumentException: attempt to create saveOrUpdate event with null entity
- springboot集成beetlsql时Dao接口无法识别的异常解决
- 全国计算机等级考试 & 架构师的设计模式
- presto-server-0.152部署文档