invalidate和requestLayout的区别及使用
1 回答
小乔要努力变强
TA贡献1条经验 获得超2个赞
找了一个回答给你:
1、不管大小变不变化,调用invalidate 只会执行onDraw绘制,调用了之后就会强制执行onDraw(),不管视图是否发生了变化,我通过一个简单的示例试过了。
2、调用requestLayout 会触发onMeasure重新测量,并调用布局onLayout重新布局,但不会调用onDraw,总结就是,控件布局没有变化时,执行invalidate就可以;如果控件布局位置变化了,但显示不变,例如平移,只需调用requestLayout
就可以;如果位置变化了,显示也不一样了,那就要同时调用,调用顺序一般是requestLayout ,然后invalidate
- 1 回答
- 0 关注
- 2950 浏览
添加回答
举报
0/150
提交
取消