杂谈-View的生命周期

原文:https://blog.csdn.net/SEU_Calvin/article/details/72855537

我觉得写得很好,有几个方法我之前用过,但是仅限于用过

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

0.构造器

除了构造器之外,还有读取项目了相应的attr信息

1.onFinsihInflate

当view 及其xml文件中加载完成之后触发的调用

2.onVisbilityChanged

在当前view及上级view可见性发生变化是调用

3.onAttachedTowindow

当view被附着到一个窗口时触发,在onResume之后调用

4.onMeasure

测量view 的大小

5.onsizechanged

在measure方法之后且测量大小与之前不一样的时候被调用

6.onLayout

为子view分配位置时调用

7.ondraw

渲染本view的内容

8.onWindowFoucusChanged

该方法也可能在绘制过程中被调用,具体是在包含当前View的Window获得或失去焦点时被调用。此时可以设置代码中定义的View的一些LayoutParameter。

如果View进入了销毁阶段,肯定是会被调用的。

9.onWindowVisibilityChanged

该方法同上,具体是在包含当前View的Window可见性改变时被调用。

10.onDetachedFromWindow

当View离开附着的窗口时触发,比如在Activity调用onDestroy方法时View就会离开窗口。和一开始的AttachedToWindow相对,都只会被调用一次。

总结

Activity在setContentView 之后,会从xml读取view并初始化,加载完成之后会调用onFinishInflate,当Activity执行到onResume的时候View才会被添加到窗口中并执行onAttachToWindow,随后执行onMeasure、onSizeChanged、onLayout、onDraw操作,这几个方法会被view的刷新及Activity的生命周期所影响,导致会执行多次。最后在页面被销毁的时候onDetachedFromWindow被调用

猜你喜欢

转载自blog.csdn.net/just_hu/article/details/105553503