控件绘制完成时机

大家或许都遇到这样一种情况,在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方法

你可能感兴趣的:(控件绘制完成时机)