今天,和大家一起啪啪下在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弹出键盘布局闪动原理和解决
  2. Android学习笔记(二) 布局方式的介绍
  3. Android 之采用execSQL和rawQuery方法完成数据的添删改查操作
  4. Android ListView 滚动的N种方法
  5. Android横竖屏布局总结
  6. Android解决输入法自动弹出方法大全
  7. Android Relative Layout 安卓相对布局详解

随机推荐

  1. Android(安卓)自定义Toast
  2. Android之无法隐藏标题栏 继承AppCompatA
  3. gradle-xxx.jar下载地址和gradle-xxx.zip
  4. Android组合按键功能定制(Framework)
  5. Android录音,和实现微信长按录音效果!
  6. Android(安卓)避免Activity转场动画退出
  7. Android(安卓)Intent传递对象摘要
  8. Android中给图片加边框
  9. 818
  10. Android开发环境搭建及入门相关