我们在日常开发中,经常需要获取控件的长度和高度。而使用getMeasuredWidth()和getMeasuredHeight()方法,无论是在onCreate()、onStart()、onResume()中调用,都无法得到控件的长度、和宽度。如下图,测量的结果为0。
《Android开发艺术探索》中给出了答案,因为View的Measure过程和Activity的生命周期方法不是同步执行的,所以无法保证Activity执行了onCreate()、onStart()、onResume()时某个View已经测量完毕了,如果View还没有测量完毕,那么获得宽/高就是0。
针对这个问题,书中给出4个解决方法:
1.Activity中onWindowFocusChanged方法
onWindowFocusChanged方法表示,View