invalidate和requestLayout的區(qū)別及使用
1 回答

小喬要努力變強(qiáng)
TA貢獻(xiàn)1條經(jīng)驗(yàn) 獲得超2個(gè)贊
找了一個(gè)回答給你:
1、不管大小變不變化,調(diào)用invalidate 只會(huì)執(zhí)行onDraw繪制,調(diào)用了之后就會(huì)強(qiáng)制執(zhí)行onDraw(),不管視圖是否發(fā)生了變化,我通過(guò)一個(gè)簡(jiǎn)單的示例試過(guò)了。
2、調(diào)用requestLayout 會(huì)觸發(fā)onMeasure重新測(cè)量,并調(diào)用布局onLayout重新布局,但不會(huì)調(diào)用onDraw,總結(jié)就是,控件布局沒(méi)有變化時(shí),執(zhí)行invalidate就可以;如果控件布局位置變化了,但顯示不變,例如平移,只需調(diào)用requestLayout
就可以;如果位置變化了,顯示也不一樣了,那就要同時(shí)調(diào)用,調(diào)用順序一般是requestLayout ,然后invalidate
- 1 回答
- 0 關(guān)注
- 2997 瀏覽
添加回答
舉報(bào)
0/150
提交
取消