1. 程式人生 > >自定義View執行invalidate()方法

自定義View執行invalidate()方法

1、自定義一個view時,重寫onDraw。
呼叫view.invalidate(),會觸發onDraw和computeScroll()。前提是該view被附加在當前視窗上
view.postInvalidate(); //是在非UI執行緒上呼叫的

2、自定義一個ViewGroup,重寫onDraw。
onDraw可能不會被呼叫,原因是需要先設定一個背景(顏色或圖)。
表示這個group有東西需要繪製了,才會觸發draw,之後是onDraw。
因此,一般直接重寫dispatchDraw來繪製viewGroup

3、自定義一個ViewGroup
dispatchDraw會呼叫drawChild