天天看点

android View的生命周期

1、默认view是visible, 从visible到gone 生命周期没有变化,接着visible会依次调用onmeasure、onlayout 、ondraw方法

2、  如果默认visible ,从visible到invisible 生命周期没有变化,接着设置visible 会ondraw, 如果此时点gone生命周期不变,如果再invisible会依次onmeasure、onlayout ,如果再visible 会ondraw

出现上面的原因是:view在InVisible的时候在布局中是占据位置的(inVisible时不可点击),所以会有onMeasure和onLayout,而在gone的时候在布局中是没有位置的,所以生命周期不会变化

3、invalidate和postinvalidate:都是view重绘,会调用ondraw方法,区别是invalidate必须在UI线程执行,postInvalidate可以在子线程执行,postInvalidate内部是通过handler处理的

4、requestLayout是只会调用measure和layout,不会调用ondraw,此方法只是确定在布局中的位置,不会重绘

继续阅读