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

简介:

一、结构

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

本文转自博客园农民伯伯的博客,原文链接:Android 3.0 r1中文API文档(104) —— ViewTreeObserver,如需转载请自行联系原博主。

目录
相关文章
|
4月前
|
编译器 API Android开发
Android经典实战之Kotlin Multiplatform 中,如何处理不同平台的 API 调用
本文介绍Kotlin Multiplatform (KMP) 中使用 `expect` 和 `actual` 关键字处理多平台API调用的方法。通过共通代码集定义预期API,各平台提供具体实现,编译器确保正确匹配,支持依赖注入、枚举类处理等,实现跨平台代码重用与原生性能。附带示例展示如何定义跨平台函数与类。
134 0
|
6月前
|
API Android开发 开发者
`RecyclerView`是Android API 21引入的UI组件,用于替代ListView和GridView
【6月更文挑战第26天】`RecyclerView`是Android API 21引入的UI组件,用于替代ListView和GridView。它提供高效的数据视图复用,优化的布局管理,支持多种布局(如线性、网格),并解耦数据、适配器和视图。RecyclerView的灵活性、性能(如局部刷新和动画支持)和扩展性使其成为现代Android开发的首选,特别是在处理大规模数据集时。
75 2
|
6月前
|
Java 开发工具 Android开发
Android Studio 导出JavaDoc文档
Android Studio 导出JavaDoc文档
194 0
|
6月前
|
Java Linux API
微信API:探究Android平台下Hook技术的比较与应用场景分析
微信API:探究Android平台下Hook技术的比较与应用场景分析
|
7月前
|
SQL API Android开发
Android API:Activity.managedQuery()
Android API:Activity.managedQuery()
53 2
|
7月前
|
API 定位技术 开发工具
Android Studio2021.1.1 高德地图api调用这一篇就够了
Android Studio2021.1.1 高德地图api调用这一篇就够了
|
7月前
|
Java 开发工具 Maven
Android SDK开发的那些事(1),已整理成文档
Android SDK开发的那些事(1),已整理成文档
|
API Android开发 前端开发
|
21天前
|
搜索推荐 前端开发 API
探索安卓开发中的自定义视图:打造个性化用户界面
在安卓应用开发的广阔天地中,自定义视图是一块神奇的画布,让开发者能够突破标准控件的限制,绘制出独一无二的用户界面。本文将带你走进自定义视图的世界,从基础概念到实战技巧,逐步揭示如何在安卓平台上创建和运用自定义视图来提升用户体验。无论你是初学者还是有一定经验的开发者,这篇文章都将为你打开新的视野,让你的应用在众多同质化产品中脱颖而出。
43 19
|
21天前
|
JSON Java API
探索安卓开发:打造你的首个天气应用
在这篇技术指南中,我们将一起潜入安卓开发的海洋,学习如何从零开始构建一个简单的天气应用。通过这个实践项目,你将掌握安卓开发的核心概念、界面设计、网络编程以及数据解析等技能。无论你是初学者还是有一定基础的开发者,这篇文章都将为你提供一个清晰的路线图和实用的代码示例,帮助你在安卓开发的道路上迈出坚实的一步。让我们一起开始这段旅程,打造属于你自己的第一个安卓应用吧!
48 14