Android中View的加载过程

来源:互联网 发布:sql的服务器名称 编辑:程序博客网 时间:2024/05/21 21:42

今天,和大家一起啪啪下在Android中View是如何被加载出来,并显示在手机上的。

首先,在Android中,大家都知道Activity是有生命周期的(onCreate,onStart,onRestart,onPause,onStop,onDestory...),其实在View中,也可以理解为

View也是有有生命周期的。下面一一道来;

(1)在自定义View后,我们一般都需要在xml布局文件中进行配置。此时,当我们启动Activity后,view显示出来,此时View的构造方法会先被调用,这里不用质疑,相信大家都知道。

(2)当构造方法被调用后,紧接着View的onFinishInflate()方法被回调。此方法的回调时机是在当xml布局中我们的View被解析完成后。即这个回调方法是跟xml有关系,解析完成则回调,那么假设现在我们直接将view在Acitivity中创建显示,不经过xml布局,这个方法还会不会被回调呢?答案肯定是否定的。大笑

(3)接下来紧接着调用的是onAttachedToWindow方法,顾名思义,即我们自定义的view已创建并添加到Window中。该方法后紧接着一般会调用onWindowVisibilityChanged方法,这个方法即当Window中的View的可见性状态(Gone,Visiable,inVisiable)发生改变都会被回调,此时,代表着我们的View是被显示出来了。

(4)View显示出来后,onMeasure方法会被回调进行测量,如果尺寸是被确定了,那么会先调用onSizeChanged方法通知View尺寸大小发生了改变。有子元素,onLayout方法将被回调来进行布局,然后再次调用onMeasure方法对View进行二次测量,如果测量值与上一次相同则不再调用onSizeChanged方法,接着再次调用onLayout方法,如果测量过程结束,则会调用onDraw方法绘制View。

简单的流程就是这样。

1 0
原创粉丝点击