控件绘制完成时机

大家或许都遇到这样一种情况,在Activity已启动的时候去做一个任务,这个任务需要获取某个View的宽高。很多人可能会说,那很简单啊,在onCreate或onResume里面去获取控件的宽高不就行了?但实际上,在onCreate或onResume里面均无法正确得到某个控件的宽高信息,因为View的measure过程和Activity的生命周期方法不是同步执行的,无法保证View已经绘制完毕了。
下面介绍四种解决这个问题的方法:

1、Activity/View 的onWindowFocusChanged()方法
2、view.post(runnalbe)
3、view.getViewTreeObserver().addOnGlobalLayoutListener();
4、自定义View中的measure方法
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容