Most visited

Recently visited

Added in API level 1

ViewTreeObserver

public final class ViewTreeObserver
extends Object

java.lang.Object
   ↳ android.view.ViewTreeObserver


视图树观察器用于注册可以在视图树中通知全局更改的侦听器。 这样的全局事件包括但不限于整个树的布局,绘制过程的开始,触摸模式的变化...... ViewTreeObserver不应该由应用程序实例化,因为它是由视图层次结构提供的。 有关更多信息,请参阅getViewTreeObserver()

Summary

Nested classes

interface ViewTreeObserver.OnDrawListener

当将要绘制视图树时调用回调的接口定义。

interface ViewTreeObserver.OnGlobalFocusChangeListener

当视图树中的焦点状态更改时调用回调的接口定义。

interface ViewTreeObserver.OnGlobalLayoutListener

在全局布局状态或视图树中的视图可见性更改时调用回调的接口定义。

interface ViewTreeObserver.OnPreDrawListener

当将要绘制视图树时调用回调的接口定义。

interface ViewTreeObserver.OnScrollChangedListener

在视图树中的某些内容被滚动时调用回调的接口定义。

interface ViewTreeObserver.OnTouchModeChangeListener

在触摸模式更改时调用回调的接口定义。

interface ViewTreeObserver.OnWindowAttachListener

将视图层次结构附加到窗口并从窗口分离时调用的回调接口定义。

interface ViewTreeObserver.OnWindowFocusChangeListener

当视图层次结构的窗口焦点状态改变时,将调用回调的接口定义。

Public methods

void addOnDrawListener(ViewTreeObserver.OnDrawListener listener)

注册一个回调,当即将绘制视图树时被调用。

void addOnGlobalFocusChangeListener(ViewTreeObserver.OnGlobalFocusChangeListener listener)

注册一个回调,当视图树中的焦点状态改变时被调用。

void addOnGlobalLayoutListener(ViewTreeObserver.OnGlobalLayoutListener listener)

当全局布局状态或视图树中的视图可见性发生更改时,注册要调用的回调

void addOnPreDrawListener(ViewTreeObserver.OnPreDrawListener listener)

注册一个回调,当即将绘制视图树时被调用

void addOnScrollChangedListener(ViewTreeObserver.OnScrollChangedListener listener)

注册一个回调,当一个视图被滚动时被调用。

void addOnTouchModeChangeListener(ViewTreeObserver.OnTouchModeChangeListener listener)

注册一个回调,当触摸模式改变时调用。

void addOnWindowAttachListener(ViewTreeObserver.OnWindowAttachListener listener)

将视图层次结构附加到窗口时,注册一个要调用的回调函数。

void addOnWindowFocusChangeListener(ViewTreeObserver.OnWindowFocusChangeListener listener)

注册一个回调,当视图树中的窗口焦点状态改变时被调用。

final void dispatchOnDraw()

通知已注册的侦听器,即绘制过程即将开始。

final void dispatchOnGlobalLayout()

通知注册的侦听器发生全局布局。

final boolean dispatchOnPreDraw()

通知已注册的侦听器,即绘制过程即将开始。

boolean isAlive()

指示此ViewTreeObserver是否处于活动状态。

void removeGlobalOnLayoutListener(ViewTreeObserver.OnGlobalLayoutListener victim)

此方法在API级别16中已弃用。请改用#removeOnGlobalLayoutListener

void removeOnDrawListener(ViewTreeObserver.OnDrawListener victim)

删除以前安装的预绘制回调。

void removeOnGlobalFocusChangeListener(ViewTreeObserver.OnGlobalFocusChangeListener victim)

删除以前安装的焦点更改回调。

void removeOnGlobalLayoutListener(ViewTreeObserver.OnGlobalLayoutListener victim)

删除以前安装的全局布局回调

void removeOnPreDrawListener(ViewTreeObserver.OnPreDrawListener victim)

删除以前安装的预绘制回调

void removeOnScrollChangedListener(ViewTreeObserver.OnScrollChangedListener victim)

删除以前安装的滚动更改回调

void removeOnTouchModeChangeListener(ViewTreeObserver.OnTouchModeChangeListener victim)

删除先前安装的触摸模式更改回调

void removeOnWindowAttachListener(ViewTreeObserver.OnWindowAttachListener victim)

删除以前安装的窗口附加回调。

void removeOnWindowFocusChangeListener(ViewTreeObserver.OnWindowFocusChangeListener victim)

删除以前安装的窗口焦点更改回调。

Inherited methods

From class java.lang.Object

Public methods

addOnDrawListener

Added in API level 16
void addOnDrawListener (ViewTreeObserver.OnDrawListener listener)

注册一个回调,当即将绘制视图树时被调用。

注意:此方法 不能onDraw()调用。

Parameters
listener ViewTreeObserver.OnDrawListener: The callback to add
Throws
IllegalStateException If isAlive() returns false

addOnGlobalFocusChangeListener

Added in API level 1
void addOnGlobalFocusChangeListener (ViewTreeObserver.OnGlobalFocusChangeListener listener)

注册一个回调,当视图树中的焦点状态改变时被调用。

Parameters
listener ViewTreeObserver.OnGlobalFocusChangeListener: The callback to add
Throws
IllegalStateException If isAlive() returns false

addOnGlobalLayoutListener

Added in API level 1
void addOnGlobalLayoutListener (ViewTreeObserver.OnGlobalLayoutListener listener)

当全局布局状态或视图树中的视图可见性发生更改时,注册要调用的回调

Parameters
listener ViewTreeObserver.OnGlobalLayoutListener: The callback to add
Throws
IllegalStateException If isAlive() returns false

addOnPreDrawListener

Added in API level 1
void addOnPreDrawListener (ViewTreeObserver.OnPreDrawListener listener)

注册一个回调,当即将绘制视图树时被调用

Parameters
listener ViewTreeObserver.OnPreDrawListener: The callback to add
Throws
IllegalStateException If isAlive() returns false

addOnScrollChangedListener

Added in API level 3
void addOnScrollChangedListener (ViewTreeObserver.OnScrollChangedListener listener)

注册一个回调,当一个视图被滚动时被调用。

Parameters
listener ViewTreeObserver.OnScrollChangedListener: The callback to add
Throws
IllegalStateException If isAlive() returns false

addOnTouchModeChangeListener

Added in API level 1
void addOnTouchModeChangeListener (ViewTreeObserver.OnTouchModeChangeListener listener)

注册一个回调,当触摸模式改变时调用。

Parameters
listener ViewTreeObserver.OnTouchModeChangeListener: The callback to add
Throws
IllegalStateException If isAlive() returns false

addOnWindowAttachListener

Added in API level 18
void addOnWindowAttachListener (ViewTreeObserver.OnWindowAttachListener listener)

将视图层次结构附加到窗口时,注册一个要调用的回调函数。

Parameters
listener ViewTreeObserver.OnWindowAttachListener: The callback to add
Throws
IllegalStateException If isAlive() returns false

addOnWindowFocusChangeListener

Added in API level 18
void addOnWindowFocusChangeListener (ViewTreeObserver.OnWindowFocusChangeListener listener)

注册一个回调,当视图树中的窗口焦点状态改变时被调用。

Parameters
listener ViewTreeObserver.OnWindowFocusChangeListener: The callback to add
Throws
IllegalStateException If isAlive() returns false

dispatchOnDraw

Added in API level 16
void dispatchOnDraw ()

通知已注册的侦听器,即绘制过程即将开始。

dispatchOnGlobalLayout

Added in API level 1
void dispatchOnGlobalLayout ()

通知注册的侦听器发生全局布局。 如果您在视图或视图层次结构上强制布局但未附加到窗口或GONE状态,则可以手动调用此选项。

dispatchOnPreDraw

Added in API level 1
boolean dispatchOnPreDraw ()

通知已注册的侦听器,即绘制过程即将开始。 如果侦听器返回true,则绘制过程将被取消并重新计划。 如果您强制在未连接到窗口或处于GONE状态的视图或视图层次结构上绘制图形,可以手动调用它。

Returns
boolean True if the current draw should be canceled and resceduled, false otherwise.

isAlive

Added in API level 1
boolean isAlive ()

指示此ViewTreeObserver是否处于活动状态。 当观察者没有活着时,任何对方法的调用(除了这个)都会抛出异常。 如果应用程序保留对此ViewTreeObserver的长时间引用,则应该始终在调用任何其他方法之前检查此方法的结果。

Returns
boolean True if this object is alive and be used, false otherwise.

removeGlobalOnLayoutListener

Added in API level 1
void removeGlobalOnLayoutListener (ViewTreeObserver.OnGlobalLayoutListener victim)

此方法在API级别16中已被弃用。
改为使用#removeOnGlobalLayoutListener

删除以前安装的全局布局回调

Parameters
victim ViewTreeObserver.OnGlobalLayoutListener: The callback to remove
Throws
IllegalStateException If isAlive() returns false

也可以看看:

removeOnDrawListener

Added in API level 16
void removeOnDrawListener (ViewTreeObserver.OnDrawListener victim)

删除以前安装的预绘制回调。

注意:此方法 不能onDraw()调用。

Parameters
victim ViewTreeObserver.OnDrawListener: The callback to remove
Throws
IllegalStateException If isAlive() returns false

也可以看看:

removeOnGlobalFocusChangeListener

Added in API level 1
void removeOnGlobalFocusChangeListener (ViewTreeObserver.OnGlobalFocusChangeListener victim)

删除以前安装的焦点更改回调。

Parameters
victim ViewTreeObserver.OnGlobalFocusChangeListener: The callback to remove
Throws
IllegalStateException If isAlive() returns false

也可以看看:

removeOnGlobalLayoutListener

Added in API level 16
void removeOnGlobalLayoutListener (ViewTreeObserver.OnGlobalLayoutListener victim)

删除以前安装的全局布局回调

Parameters
victim ViewTreeObserver.OnGlobalLayoutListener: The callback to remove
Throws
IllegalStateException If isAlive() returns false

也可以看看:

removeOnPreDrawListener

Added in API level 1
void removeOnPreDrawListener (ViewTreeObserver.OnPreDrawListener victim)

删除以前安装的预绘制回调

Parameters
victim ViewTreeObserver.OnPreDrawListener: The callback to remove
Throws
IllegalStateException If isAlive() returns false

也可以看看:

removeOnScrollChangedListener

Added in API level 3
void removeOnScrollChangedListener (ViewTreeObserver.OnScrollChangedListener victim)

删除以前安装的滚动更改回调

Parameters
victim ViewTreeObserver.OnScrollChangedListener: The callback to remove
Throws
IllegalStateException If isAlive() returns false

也可以看看:

removeOnTouchModeChangeListener

Added in API level 1
void removeOnTouchModeChangeListener (ViewTreeObserver.OnTouchModeChangeListener victim)

删除先前安装的触摸模式更改回调

Parameters
victim ViewTreeObserver.OnTouchModeChangeListener: The callback to remove
Throws
IllegalStateException If isAlive() returns false

也可以看看:

removeOnWindowAttachListener

Added in API level 18
void removeOnWindowAttachListener (ViewTreeObserver.OnWindowAttachListener victim)

删除以前安装的窗口附加回调。

Parameters
victim ViewTreeObserver.OnWindowAttachListener: The callback to remove
Throws
IllegalStateException If isAlive() returns false

也可以看看:

removeOnWindowFocusChangeListener

Added in API level 18
void removeOnWindowFocusChangeListener (ViewTreeObserver.OnWindowFocusChangeListener victim)

删除以前安装的窗口焦点更改回调。

Parameters
victim ViewTreeObserver.OnWindowFocusChangeListener: The callback to remove
Throws
IllegalStateException If isAlive() returns false

也可以看看:

Hooray!