View的layout过程详解

2019-05-10  本文已影响0人  空山Echo

layout过程的作用是确定元素的位置

ViewGroup中大致流程为:(以竖直方向的LinearLayout为例)

  1. 从layout方法开始,通过setFrame方法确定四个顶点的位置,即可确定元素在父容器中的位置
  2. 接着调用onLayout方法,确定子元素的位置。由于实现方式与布局有关,所以此方法为抽象方法,有子类实现逻辑。

以竖直方向的LinearLayout为例
重写onLayout方法,随后通过layoutVertical方法进行之后的逻辑

  1. layoutVertical方法会遍历所有的资源,通过setChildFrame来确定子元素的位置,之后调用子元素的layout的方法。
  2. 这样父元素在layout方法中完成了自己的定位,并通过onLayout方法去调用子元素的layout方法,以此反复,完成View树的layout过程。
上一篇 下一篇

猜你喜欢

热点阅读