返回介绍

ViewTreeObserver

发布于 2025-03-09 17:00:23 字数 4338 浏览 0 评论 0 收藏 0

ViewTreeObserver

版本:Android 3.0 r1

结构

继承关系

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 的选择及文字颜色

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文