前言html
本章內容是android.view.ViewTreeObserver,版本爲Android 3.0 r1,翻譯來自"首當其衝",再次感謝"首當其衝" !期待你加入Android API 中文的翻譯,聯繫我over140@gmail.com。java
聲明android
歡迎轉載,但請保留文章原始出處:)
web
農民伯伯:http://over140.blog.51cto.com/ide
Android中文翻譯組: http://goo.gl/6vJQl
正文函數
1、結構佈局
public final class ViewTreeObserver extends Objectspa
java.lang.Object翻譯
android.view.ViewTreeObservercode
2、概述
getViewTreeObserver()
以查看更多信息。
3、內部類
interface ViewTreeObserver.OnGlobalFocusChangeListener
當在一個視圖樹中的焦點狀態發生改變時,所要調用的回調函數的接口類
interface ViewTreeObserver.OnGlobalLayoutListener
當在一個視圖樹中全局佈局發生改變或者視圖樹中的某個視圖的可視狀態發生改變時,所要調用的回調函數的接口類
interface ViewTreeObserver.OnPreDrawListener
當一個視圖樹將要繪製時,所要調用的回調函數的接口類
interface ViewTreeObserver.OnScrollChangedListener
當一個視圖樹中的一些組件發生滾動時,所要調用的回調函數的接口類
interface ViewTreeObserver.OnTouchModeChangeListener
當一個視圖樹的觸摸模式發生改變時,所要調用的回調函數的接口類
4、公共方法
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
5、補充
文章連接