Android之ViewTreeObserver

來源:互聯網
上載者:User

Android之ViewTreeObserver

前兩天寫了個載入更多的小功能,用到了Android的ViewTreeObserver這個類,在這裡對這個類詳細解釋下。

基本概念這是一個註冊監聽視圖樹的觀察者(observer),在視圖樹種全域事件改變時得到通知。這個全域事件不僅還包括整個樹的布局,從繪畫過程開始,觸摸模式的改變等。最常見的用途時通過監聽獲知什麼時候,視圖的寬高值確定了,可以擷取了,以便更改UI。主要介面:監聽器interface ViewTreeObserver.OnGlobalFocusChangeListener 當在一個視圖樹中的焦點狀態發生改變時,所要調用的回呼函數的介面類 interface ViewTreeObserver.OnGlobalLayoutListener當在一個視圖樹中全域布局發生改變或者視圖樹中的某個視圖的可視狀態發生改變時,所要調用的回呼函數的介面類 interface ViewTreeObserver.OnPreDrawListener當一個視圖樹將要繪製時,所要調用的回呼函數的介面類 interface ViewTreeObserver.OnScrollChangedListener當一個視圖樹中的一些組件發生滾動時,所要調用的回呼函數的介面類 interface ViewTreeObserver.OnTouchModeChangeListener當一個視圖樹的觸摸模式發生改變時,所要調用的回呼函數的介面類程式碼範例:注意:如何擷取一個控制項的長和高,相信很多朋友第一眼看見這個問題都會覺得很簡單,直接在onCreate裡面調用getWidth、getMeasuredWidth不就可以獲得了嗎,但是,事實上是並沒有簡單的,不信的話,你可以去試一下,在onCreate裡面,你是無法獲得長寬值的,始終為0。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.