invalidate和requestLayout的區別及使用
1 回答

小喬要努力變強
TA貢獻1條經驗 獲得超2個贊
找了一個回答給你:
1、不管大小變不變化,調用invalidate 只會執行onDraw繪制,調用了之后就會強制執行onDraw(),不管視圖是否發生了變化,我通過一個簡單的示例試過了。
2、調用requestLayout 會觸發onMeasure重新測量,并調用布局onLayout重新布局,但不會調用onDraw,總結就是,控件布局沒有變化時,執行invalidate就可以;如果控件布局位置變化了,但顯示不變,例如平移,只需調用requestLayout
就可以;如果位置變化了,顯示也不一樣了,那就要同時調用,調用順序一般是requestLayout ,然后invalidate
- 1 回答
- 0 關注
- 3017 瀏覽
添加回答
舉報
0/150
提交
取消