ViewTreeObserver

这是一个注册监听视图树的观察者(observer),在视图树种全局事件改变时得到通知。这个全局事件包括整个树的布局,从绘画过程开始,触摸模式的改变等。ViewTreeObserver不能够被应用程序实例化,因为它是由视图提供,参照getViewTreeObserver()以查看更多信息。

内部类

//当在一个视图树中的焦点状态发生改变时,所要调用的回调函数的接口类
interface  ViewTreeObserver.OnGlobalFocusChangeListener

//当在一个视图树中全局布局发生改变或者视图树中的某个视图的可视状态发生改变时,所要调用的回调函数的接口类 
interface ViewTreeObserver.OnGlobalLayoutListener

//当一个视图树将要绘制时,所要调用的回调函数的接口类
interface ViewTreeObserver.OnPreDrawListener

//当一个视图树中的一些组件发生滚动时,所要调用的回调函数的接口类 
interface ViewTreeObserver.OnScrollChangedListener

//当一个视图树的触摸模式发生改变时,所要调用的回调函数的接口类
interface ViewTreeObserver.OnTouchModeChangeListener

// 当试图树被添加到窗口或从窗体移除时触发
interface OnWindowAttachListener

// 非activity窗体被展现(fully shown)时触发(hide)
interface OnWindowShownListener

// 当一个试图树的窗体焦点改变时,触发这个类回调,是整个试图树的改变,跟OnGlobalFocusChangeListener试图树内不同试图间焦点的改变不同
interface OnWindowFocusChangeListener

//当一个视图树将要绘制时调用的回调函数类,与OnPreDrawListener不同的是,它不能取消draw的过程
interface OnDrawListener

// activity窗体被展现(fully shown)时触发(hide),跟上面的OnWindowShownListener是对应的
interface OnEnterAnimationCompleteListener

公共方法

/**指示当前的ViewTreeObserver是否可用(alive)。当observer不可用时,任何方法的调用(除了这个方法)都将抛出一个异常。如果一个应用程序保持和ViewTreeObserver一个历时较长的引用,它应该总是需要在调用别的方法之前去检测这个方法的返回值。
 *返回值 但这个对象可用则返回true,否则返回false   
 */
public boolean isAlive ()

/**注册一个回调函数,当在一个视图树中全局布局发生改变或者视图树中的某个视图的可视状态发生改变时调用这个回调函数。
 *参数 listener    将要被添加的回调函数
 *异常 IllegalStateException       如果isAlive() 返回false
 */
public void addOnGlobalLayoutListener (ViewTreeObserver.OnGlobalLayoutListener listener)

/**移除之前已经注册的全局布局回调函数。
 *参数 victim 将要被移除的回调函数
 *异常 IllegalStateException       如果isAlive() 返回false   
 */
public void removeGlobalOnLayoutListener (ViewTreeObserver.OnGlobalLayoutListener victim)

...

results matching ""

    No results matching ""