invalidate和requestLayout的区别及使用

invalidate和requestLayout的区别及使用

英明神武的牛
浏览 2872回答 1
1回答

小乔要努力变强

找了一个回答给你:1、不管大小变不变化,调用invalidate 只会执行onDraw绘制,调用了之后就会强制执行onDraw(),不管视图是否发生了变化,我通过一个简单的示例试过了。2、调用requestLayout 会触发onMeasure重新测量,并调用布局onLayout重新布局,但不会调用onDraw,总结就是,控件布局没有变化时,执行invalidate就可以;如果控件布局位置变化了,但显示不变,例如平移,只需调用requestLayout 就可以;如果位置变化了,显示也不一样了,那就要同时调用,调用顺序一般是requestLayout ,然后invalidate
打开App,查看更多内容
随时随地看视频慕课网APP