一起Talk Android吧(第一百一十九回:Android中View的内部流程二)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/talk_8/article/details/88935693

各位看官们,大家好,上一回中咱们说的是Android中View内部流程的例子,这一回咱们继续说该例子。闲话休提,言归正转。让我们一起Talk Android吧!

看官们,我们在上一章回中对View的内部流程做了概述性的介绍,并且提到了它的三个核心部分,这一回中我们介绍第一个核心部分:测量(measure)

测量主是对View中的各种组件的大小进行计算,它会计算出组件的长度和宽度,为下一步的规则做准备。测量功能主要是通过performMeasure()函数实现的,下面是它的源代码:

private void performMeasure(int childWidthMeasureSpec, int childHeightMeasureSpec) {
    if (mView == null) {
        return;
    }
    Trace.traceBegin(Trace.TRACE_TAG_VIEW, "measure");
    try {
        mView.measure(childWidthMeasureSpec, childHeightMeasureSpec);
    } finally {
        Trace.traceEnd(Trace.TRACE_TAG_VIEW);
    }
}

大家可以看到该函数没有直接去测量View中组件的大小,而调用了View中的measure()函数,大家可以到frameworks/base/core/java/android/view/View.java中去查看它的实现。
各位看官,关于Androd中View的内部流程的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!

猜你喜欢

转载自blog.csdn.net/talk_8/article/details/88935693