天天看點

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,此方法隻是确定在布局中的位置,不會重繪

繼續閱讀