这个问题答案是:不一定能够正确的获取view的宽高,然后我们要分析原因,然后我们还要讲解解决办法。
如果是activity
启动后第一次进入onResume
生命周期,那么获取到的View
的宽高是错误的;
如果是从其他activity
回到当前activity
而执行的onResume
方法,那么就能够获取到View
的宽高。
究其原因如下:
首先我们要找到系统调用 onResume
的地方,大家可以看到 ActivityThread
类,在这个类中有一个函数handleResumeActivity
,这个函数在下面我们只保留了核心代码。
handleResumeActivity() {
//...