得到View的宽度高度

先说结论: 在Activity里的oncreate(), onstart(),onResume()中都是拿不到的, 在onWindowFocusChanged()的是可以拿到的.为什么这样?

再说原因: 我TM也说不清, 不过大概的知道一点, view的绘制过程是onMeasure(),onLayout(),onDraw(),有人说在onLayout()之后就可以得到了,我觉得准确的说是在onMeasure()之后就可以得到了,但是为什么在onResume()时拿不到?有人又说了,是因为onResume()不是真正的可见的回调方法 ,见:http://www.seangri-la.com/cgi-bin/moin.cgi/onResume_!%3D_Visible_to_user

详细的生命周期可以看一下:http://blog.csdn.net/nowlf_android/article/details/7229500不copy了. 

不知道activity生命周期方法里为什么没有onWindowFocusChanged(),难道就因为它不是activity?但是activity难道还能在window外?window这个是不是一个准确的概念? windowManager是一个准确的概念, 但window呢?难不成window还有一组生命周期方法 , 它的方法假如就是oncreate()--->onstart()--->onWindowFocusChanged()--->onstop()---->onDestory(), 它的这组方法与activity的那种生命周期方法是两组, 但是它们又是如此的相关. 

运行一个activity打log. 可见, activity的生命周期方法和onWindowFocusChanged()的顺序为: 

oncreate()--->onstart()--->onResume()--->onWindowFocusChanged()--->onPause()---->onWindowFocusChanged()--->onstop()---->onDestory()
原文地址:https://www.cnblogs.com/olvo/p/2471791.html