正文

  一、结构

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

本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582383,如需转载请自行联系原作者

Android 3.0 r1中文API文档(104) —— ViewTreeObserver相关推荐

  1. Vitamio中文API文档(1)—— MediaStore

    类概述 public final class MediaStore 媒体存储辅助类. 常量 public static final String AUTHORITY 常量值:me.abitno.vpl ...

  2. poi中文api文档

    POI中文API文档 一. POI简介 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. 二. HS ...

  3. Sequelize 中文API文档

    Sequelize 中文API文档-1. 快速入门.Sequelize类 2016年05月20日     35766     声明 Sequelize类是引用sequlize模块后获取一个顶级对象,我 ...

  4. Servlet中文API文档-个人整理版

    Servlet中文API文档-个人整理版 一.Servlet 说明:servlet抽象集是javax.servlet.Servlet接口,它规定了必须由Servlet类实现由servlet引擎识别和管 ...

  5. poi操作 excel 中文API文档

    poi操作 excel 中文API文档 依赖: <dependency><groupId>org.apache.poi</groupId><artifactI ...

  6. bluebird与原生Promise对象及bluebird模块的中文API文档

    bluebird与原生Promise对象及bluebird模块的中文API文档 2016年06月15日     9392     声明 https://itbilu.com/nodejs/npm/VJ ...

  7. papaparse 使用_插件 jQuery.Papa Parse 中文 API 文档

    插件 jQuery.Papa Parse 中文 API 文档 使用 JavaScript 解析 CSV Papa Parse 是 JavaScript 中最快的浏览器内 CSV(或分隔文本)解析器.根 ...

  8. jdk8.0 在线中文帮助文档地址(一步及达)

    jdk8.0 在线中文帮助文档地址 https://blog.fondme.cn/apidoc/jdk-1.8-baidu/

  9. Android中文API文档

    学习安卓开发不可缺少的API文档,是中文的,大家一起学习以下是我的资源连接: http://download.csdn.net/my/downloads

最新文章

  1. 平均符号熵的计算公式_交叉熵(Cross Entropy)从原理到代码解读
  2. 【组队学习】【29期】Datawhale组队学习内容介绍
  3. ISP PIPLINE (九_1) Denoise 之 space domain denoise
  4. C#中使用StreamReader实现文本文件的读取与写入
  5. 5下载的demo在哪_归类专业能力水平评价练习盘!快来下载呀
  6. linux分区设置大小,Linux调整磁盘分区大小
  7. Memory及其controller芯片整体测试方案(上篇)
  8. Leetcode--342. 4的幂
  9. 一份帮助你更好地理解深度学习的资源清单
  10. Hadoop搭建集群中输入hdfs namenode -format格式化节点时,提示:hdfs: command not found 解决办法
  11. MFC sendmessage实现进程间通信
  12. Django signal
  13. 滴滴这名员工的N+1飞了,离职带走公司文档
  14. 将linux用在开发环境中
  15. 一、华为设备telnet命令配置
  16. 2022年自考专业(工商企业管理)电子商务概论练习题
  17. CMD命令制定打印机,打印测试页
  18. 自己写得一个分布式海量文件搜索引擎
  19. 谷歌浏览器启动页被篡改为hao.7654.com的解决办法
  20. python3中单引号,双引号,三个单引号 ,三个双引号的差别,以及反斜杠的用法

热门文章

  1. jggrid应用于asp.net
  2. 结构体作为STL map的key时需要注意什么? (某公司招聘面试试题)已跪~~~~(_)~~~~
  3. 安装与使用 Trac 来管理项目
  4. Google Capture The Flag 2018 (Quals) - Beginner's Quest - Reverse - Firmware
  5. javascript中五句话
  6. analyzing problems
  7. iOS集成sharesdk遇到的坑
  8. java 集合框架(一)
  9. Web开发学习点滴(持续更新)
  10. shell 命令行实现