本文主要是介绍View 的 requestLayout 发起的重绘流程源码分析(Android Q),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
View 的 requestLayout 发起的重绘流程源码分析(Android Q)
我们平时经常会调用 View 类的 requestLayout 方法更新视图,那么它又是如何发起的重绘逻辑呢?
View 的 requestLayout 方法:
public void requestLayout() {……if (mParent != null && !mParent.isLayoutRequested()) {//调用父视图的 requestLayout 方法mParent.requestLayout();}……}
该方法进行了一些属性设置,接下来调用了父视图的 requestLayout 方法。该方法一直会顺着视图树向上调用,一直到根视图,也就是 DecorView。但最终是调用到 DecorView 的 requestLayout 方法吗?
我们先来看 mParent 在什么地方赋值的?
View 的 assignParent 方法
protected ViewParent mParent;void assignParent(ViewParent parent) {if (mParent == null) {mParent = parent;} else if (parent == null) {
这篇关于View 的 requestLayout 发起的重绘流程源码分析(Android Q)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!