當一個視圖樹的佈局發生改變時,可以被ViewTreeObserver監聽到, 這是一個註冊監聽視圖樹的觀察者(observer),在視圖樹的全局事件改變時得到通知。ViewTreeObserver不能直接實例化,而是通過getViewTreeObserver()獲得。
我們知道在oncreate中View.getWidth和View.getHeight無法獲得一個view的高度和寬度,這是因爲View組件佈局要在onResume回調後完成。所以現在需要使用getViewTreeObserver().addOnGlobalLayoutListener()來獲得寬度或者高度。這是獲得一個view的寬度和高度的方法之一。
OnGlobalLayoutListener 是ViewTreeObserver的內部類,當一個視圖樹的佈局發生改變時,可以被ViewTreeObserver監聽到,這是一個註冊監聽視圖樹的觀察者(observer),在視圖樹的全局事件改變時得到通知。ViewTreeObserver不能直接實例化,而是通過getViewTreeObserver()獲得。
除了OnGlobalLayoutListener ,ViewTreeObserver還有如下內部類: