1、onWindowFocusChanged
当Activity的窗口得到焦点和失去焦点时均会被调用一次
如果频繁的进行onResume和onPause,那么onWindowFocusChanged也会被频繁调用
2、view.post(runnable)
通过post可以将一个runnable投递到消息队列的尾部,然后等待Looper调用次Runnable的时候,View已经初始化好了
3、ViewTreeObserve
当view树的状态发生改变或者view树内部的view可见发生变化时,onGlobalLayout方法将被回调
override fun onStart() { super.onStart() val observe =view.viewTreeObserver observe.addOnGlobalLayoutListener { //获取你的宽高 } }