同fragment和activity的生命周期一样,view也有自己的生命周期,view的生命周期并不直接和展示他的fragment或activity相连接,相反,它和显示他的窗口状态以及渲染循环相关。
当视图被加到view的层次结构中时,第一个被回调的是view.onattachedtowindow(),他标志的现在可以加载所有的资源。一般构建自定义视图时,我们重写该方法,并在该方法中加载所有的资源并初始化视图所需的依赖,基本上在该方法中做耗时操作。还有一个匹配的回调名为view.ondetachedfromwindow(),从view层次结构中移除视图时调用的这个方法。
视图被添加到view层次结构中之后,它会经过一个循环,该循环首先计算动画,接下来会依次回调view.onmeasure(),view.onlayout(),view.ondraw()等方法,系统会确保这些方法每次都按完全相同的顺序被调用。