3.View绘制分析笔记之onLayout
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3.View绘制分析笔记之onLayout相关的知识,希望对你有一定的参考价值。
上一篇文章我们了解了View的onMeasure,那么今天我们继续来学习android View绘制三部曲的第二步,onLayout,布局。
ViewRootImpl#performLayout
private void performLayout(WindowManager.LayoutParams lp, int desiredWindowWidth,
|
这个方法主要的作用就是调用了host.layout,并把已经测绘好的宽高传计算成上下左右递过去,host就是decorView。
View#layout
public void layout(int l, int t, int r, int b) {
|
View#setFrame
protected boolean setFrame(int left, int top, int right, int bottom) {
|
FrameLayout#onLayout
如果是View的话,执行完layout方法,那么他已经布局完成,不过如果是ViewGroup,那么它需要对它的子View进行处理。onLayout主要的作用就是调用layoutChildren,对子View进行布局,所以这里着重介绍layoutChildren。
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
|
时序图
小结
到这里就介绍完了View绘制的layout方法。比起measure,layout可是简单多了。不过这里还预留了一些坑,没有交代清楚,比如invalidate,还有RenderNode硬件加速等,以后会写一些笔记专门针对这些知识点做梳理。
系列文章
Android 视图及View绘制分析笔记之setContentView
View绘制分析笔记之onMeasure
View绘制分析笔记之onLayout
View绘制分析笔记之onDraw
以上是关于3.View绘制分析笔记之onLayout的主要内容,如果未能解决你的问题,请参考以下文章
1.Android 视图及View绘制分析笔记之setContentView