今天,和大家一起啪啪下在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. Android(安卓)使用Parcelable传递对象
  2. Android(安卓)ListView 滚动的N种方法
  3. Edittext禁止输入回车键以及单行显示解决方案
  4. Android异步任务AsyncTask
  5. android:ellipsize属性的含义
  6. 【Android(安卓)Demo】通过WebService获取今日天气情况
  7. Android(安卓)之采用execSQL和rawQuery方法完成数据的添删改查操
  8. 浅谈Java中Collections.sort对List排序的两种方法
  9. Python list sort方法的具体使用

随机推荐

  1. conversion to dalvik format failed wit
  2. 使用GridView的auto_fit遇到的坑
  3. andr
  4. Android菜单详解(四)——使用上下文菜单Con
  5. 如何让Android(安卓)UI设计性能更高效
  6. android 视图getParent,getChildAt
  7. Android抽象布局——include、merge 、Vi
  8. Android(安卓)AOSP基础(四)Source Insight
  9. Android8.0 蓝牙系统
  10. android JNI层线程回调Java函数