Android 3.0 r1中文API文檔(104) —— ViewTreeObserver

來源:互聯網
上載者:User

 

前言

  本章內容是android.view.ViewTreeObserver,版本為Android 3.0 r1,翻譯來自"首當其衝",再次感謝"首當其衝" !期待你加入Android API 中文的翻譯,聯絡我over140@gmail.com。

 

聲明

  歡迎轉載,但請保留文章原始出處:)

    部落格園:http://www.cnblogs.com/

    Android中文翻譯組:http://goo.gl/6vJQl

本文

  一、結構

public final class ViewTreeObserver extends Object

        

java.lang.Object

         android.view.ViewTreeObserver

 

  二、概述

    用於註冊監聽的視圖樹觀察者(observer),在視圖樹種全域事件改變時得到通知。這個全域事件不僅還包括整個樹的布局,從繪畫過程開始,觸摸模式的改變等。ViewTreeObserver不能夠被應用程式執行個體化,因為它是由視圖提供,參照 getViewTreeObserver()以查看更多資訊。

 

  三、內部類

    interface          ViewTreeObserver.OnGlobalFocusChangeListener        

    當在一個視圖樹中的焦點狀態發生改變時,所要調用的回呼函數的介面類

 

    interface          ViewTreeObserver.OnGlobalLayoutListener

    當在一個視圖樹中全域布局發生改變或者視圖樹中的某個視圖的可視狀態發生改變時,所要調用的回呼函數的介面類

 

    interface          ViewTreeObserver.OnPreDrawListener

    當一個視圖樹將要繪製時,所要調用的回呼函數的介面類

 

    interface          ViewTreeObserver.OnScrollChangedListener

    當一個視圖樹中的一些組件發生滾動時,所要調用的回呼函數的介面類

 

    interface          ViewTreeObserver.OnTouchModeChangeListener

    當一個視圖樹的觸摸模式發生改變時,所要調用的回呼函數的介面類

 

  四、公用方法

  public void addOnGlobalFocusChangeListener (ViewTreeObserver.OnGlobalFocusChangeListener listener)

  註冊一個回呼函數,當在一個視圖樹中的焦點狀態發生改變時調用這個回呼函數。

  參數

                   listener    將要被添加的回呼函數

                 異常

                   IllegalStateException       如果isAlive() 返回false

                           

  public void addOnGlobalLayoutListener (ViewTreeObserver.OnGlobalLayoutListener listener)

  註冊一個回呼函數,當在一個視圖樹中全域布局發生改變或者視圖樹中的某個視圖的可視狀態發生改變時調用這個回呼函數。

  參數

                   listener    將要被添加的回呼函數

                 異常

                   IllegalStateException       如果isAlive() 返回false

                  

  public void addOnPreDrawListener (ViewTreeObserver.OnPreDrawListener listener)

  註冊一個回呼函數,當一個視圖樹將要繪製時調用這個回呼函數。

  參數

                   listener    將要被添加的回呼函數

                 異常

                   IllegalStateException       如果isAlive() 返回false

                           

  public void addOnScrollChangedListener (ViewTreeObserver.OnScrollChangedListener listener)     

  註冊一個回呼函數,當一個視圖發生滾動時調用這個回呼函數。

  參數

                   listener    將要被添加的回呼函數

                 異常

                   IllegalStateException       如果isAlive() 返回false

                           

  public void addOnTouchModeChangeListener (ViewTreeObserver.OnTouchModeChangeListener listener)

  註冊一個回呼函數,當一個觸摸模式發生改變時調用這個回呼函數。

  參數

                   listener    將要被添加的回呼函數

                 異常

                   IllegalStateException       如果isAlive() 返回false

 

  public final void dispatchOnGlobalLayout ()

  當整個布局發生改變時通知相應的註冊監聽器。如果你強制對視圖布局或者在一個沒有附加到一個視窗的視圖的階層或者在GONE狀態下,它可以被手動的調用

                           

  public final boolean dispatchOnPreDraw ()

  當一個視圖樹將要繪製時通知相應的註冊監聽器。如果這個監聽器返回true,則這個繪製將被取消並重新計劃。如果你強制對視圖布局或者在一個沒有附加到一個視窗的視圖的階層或者在一個GONE狀態下,它可以被手動的調用

                   傳回值

                            當前繪製能夠取消並重新計劃則返回true,否則返回false。

        

  public boolean isAlive ()

  指示當前的ViewTreeObserver是否可用(alive)。當observer不可用時,任何方法的調用(除了這個方法)都將拋出一個異常。如果一個應用程式保持和ViewTreeObserver一個曆時較長的引用,它應該總是需要在調用別的方法之前去檢測這個方法的傳回值。

                   傳回值

                            但這個對象可用則返回true,否則返回false             

 

  public void removeGlobalOnLayoutListener (ViewTreeObserver.OnGlobalLayoutListener victim)

  移除之前已經註冊的全域布局回呼函數。

  參數

                   victim 將要被移除的回呼函數

                 異常

                   IllegalStateException       如果isAlive() 返回false        

 

  public void removeOnGlobalFocusChangeListener (ViewTreeObserver.OnGlobalFocusChangeListener victim)

  移除之前已經註冊的焦點改變回呼函數。

  參數

                   victim 將要被移除的回呼函數

                 異常

                   IllegalStateException       如果isAlive() 返回false 

                           

  public void removeOnPreDrawListener (ViewTreeObserver.OnPreDrawListener victim)

  移除之前已經註冊的預繪製回呼函數。

  參數

                   victim 將要被移除的回呼函數

                 異常

                   IllegalStateException       如果isAlive() 返回false 

 

  public void removeOnScrollChangedListener (ViewTreeObserver.OnScrollChangedListener victim)

  移除之前已經註冊的滾動改變回呼函數。

  參數

                   victim 將要被移除的回呼函數

                 異常

                   IllegalStateException       如果isAlive() 返回false 

 

  public void removeOnTouchModeChangeListener (ViewTreeObserver.OnTouchModeChangeListener victim)

  移除之前已經註冊的觸摸模式改變回呼函數

  參數

                   victim 將要被移除的回呼函數

                 異常

                   IllegalStateException       如果isAlive() 返回false 

 

  五、補充

  文章連結

   Android的選擇及文字顏色

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.