Layout布局源码浅析之——FrameLayout
Posted linghu-java
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Layout布局源码浅析之——FrameLayout相关的知识,希望对你有一定的参考价值。
一直想研究下安卓各种布局控件,FrameLayout是安卓最简单的界面布局,所以就从FrameLayout讲起。
1.属性。frameLayout继承ViewGroup,除了拥有ViewGroup的属性之外,只有一个layout_gravity属性。看它的内部静态类LayoutParams:
1 public static class LayoutParams extends MarginLayoutParams { 2 public int gravity = -1;//唯一的属性
2.绘制过程。首先,它会遍历所有子view,并且对每个子view进行measure,并记录下子view的最大宽高,作为自身的尺寸。在这个过程中,如果自身是不确定大小的模式,子view又是MATCH_PARENT属性的,就需要为这些子view重新测绘。
3.layout过程。FrameLayout对每个子view的layout过程是相同的。它遍历所有子view,通过子view的gravity属性进行xy轴偏移量的计算,最后调用child.layout()对子View进行布局。
以上是关于Layout布局源码浅析之——FrameLayout的主要内容,如果未能解决你的问题,请参考以下文章
[Android FrameWork 6.0源码学习] View的重绘过程之Layout
(19)Blender源码分析之闪屏窗口的菜单python代码draw函数运行过程