一、结构
public final class ViewTreeObserver extends Objectjava.lang.Objectandroid.view.ViewTreeObserver
二、概述
这是一个注册监听视图树的观察者(observer),在视图树种全局事件改变时得到通知。这个全局事件不仅还包括整个树的布局,从绘画过程开始,触摸模式的改变等。ViewTreeObserver不能够被应用程序实例化,因为它是由视图提供,参照getViewTreeObserver()以查看更多信息。
三、内部类
 1     interface  ViewTreeObserver.OnGlobalFocusChangeListener
 2   //当在一个视图树中的焦点状态发生改变时,所要调用的回调函数的接口类
 3
 4   interface  ViewTreeObserver.OnGlobalLayoutListener
 5   //当在一个视图树中全局布局发生改变或者视图树中的某个视图的可视状态发生改变时,所要调用的回调函数的接口类
 6
 7   interface  ViewTreeObserver.OnPreDrawListener
 8   //当一个视图树将要绘制时,所要调用的回调函数的接口类
 9
10   interface  ViewTreeObserver.OnScrollChangedListener
11   //当一个视图树中的一些组件发生滚动时,所要调用的回调函数的接口类
12
13   interface  ViewTreeObserver.OnTouchModeChangeListener
14   //当一个视图树的触摸模式发生改变时,所要调用的回调函数的接口类
四、公共方法
 1  /**注册一个回调函数,当在一个视图树中的焦点状态发生改变时调用这个回调函数。
 2   * 参数 listener    将要被添加的回调函数
 3   *异常 IllegalStateException       如果isAlive() 返回false
 4   */
 5  public void addOnGlobalFocusChangeListener (ViewTreeObserver.OnGlobalFocusChangeListener listener)
 6
 7
 8  /**注册一个回调函数,当在一个视图树中全局布局发生改变或者视图树中的某个视图的可视状态发生改变时调用这个回调函数。
 9   *参数 listener    将要被添加的回调函数
10   *异常 IllegalStateException       如果isAlive() 返回false
11   */
12  public void addOnGlobalLayoutListener (ViewTreeObserver.OnGlobalLayoutListener listener)
13   
14
15   
16  /**注册一个回调函数,当一个视图树将要绘制时调用这个回调函数。
17   *参数 listener    将要被添加的回调函数
18   *异常 IllegalStateException       如果isAlive() 返回false
19   */
20  public void addOnPreDrawListener (ViewTreeObserver.OnPreDrawListener listener)
21
22  
23  /**注册一个回调函数,当一个视图发生滚动时调用这个回调函数。
24   *参数 listener    将要被添加的回调函数
25   *异常 IllegalStateException       如果isAlive() 返回false
26   */
27  public void addOnScrollChangedListener (ViewTreeObserver.OnScrollChangedListener listener)
28
29  
30  /**注册一个回调函数,当一个触摸模式发生改变时调用这个回调函数。
31   *参数 listener    将要被添加的回调函数
32   *异常 IllegalStateException       如果isAlive() 返回false
33   */
34  public void addOnTouchModeChangeListener (ViewTreeObserver.OnTouchModeChangeListener listener)
35
36   
37  //当整个布局发生改变时通知相应的注册监听器。如果你强制对视图布局或者在一个没有附加到一个窗口的视图的层次结构或者在GONE状态下,它可以被手动的调用
38  public final void dispatchOnGlobalLayout ()
39
40  /**当一个视图树将要绘制时通知相应的注册监听器。如果这个监听器返回true,则这个绘制将被取消并重新计划。如果你强制对视图布局或者在一个没有附加到一个窗口的视图的层次结构或者在一个GONE状态下,它可以被手动的调用
41   *返回值  当前绘制能够取消并重新计划则返回true,否则返回false。
42   */
43  public final boolean dispatchOnPreDraw ()
44
45  /**指示当前的ViewTreeObserver是否可用(alive)。当observer不可用时,任何方法的调用(除了这个方法)都将抛出一个异常。如果一个应用程序保持和ViewTreeObserver一个历时较长的引用,它应该总是需要在调用别的方法之前去检测这个方法的返回值。
46   *返回值 但这个对象可用则返回true,否则返回false
47   */
48  public boolean isAlive ()
49
50
51  /**移除之前已经注册的全局布局回调函数。
52   *参数 victim 将要被移除的回调函数
53   *异常 IllegalStateException       如果isAlive() 返回false
54   */
55  public void removeGlobalOnLayoutListener (ViewTreeObserver.OnGlobalLayoutListener victim)
56   
57  /**移除之前已经注册的焦点改变回调函数。
58   *参数 victim 将要被移除的回调函数
59   *异常 IllegalStateException       如果isAlive() 返回false
60   */
61  public void removeOnGlobalFocusChangeListener (ViewTreeObserver.OnGlobalFocusChangeListener victim)
62   
63  /**移除之前已经注册的预绘制回调函数。
64   *参数 victim 将要被移除的回调函数
65   *异常 IllegalStateException       如果isAlive() 返回false
66   */
67  public void removeOnPreDrawListener (ViewTreeObserver.OnPreDrawListener victim)
68   
69  /**移除之前已经注册的滚动改变回调函数。
70   *参数 victim 将要被移除的回调函数
71   *异常 IllegalStateException       如果isAlive() 返回false
72   */
73  public void removeOnScrollChangedListener (ViewTreeObserver.OnScrollChangedListener victim)
74  
75  /**移除之前已经注册的触摸模式改变回调函数
76   *参数 victim 将要被移除的回调函数
77   *异常  IllegalStateException       如果isAlive() 返回false
78   */
79  public void removeOnTouchModeChangeListener (ViewTreeObserver.OnTouchModeChangeListener victim)

ViewTreeObserver简介相关推荐

  1. Android ViewTreeObserver简介-------------转

    Android ViewTreeObserver简介 一.结构 public final class ViewTreeObserver extends Object java.lang.Object ...

  2. WebView 简介

    WebView 简介 日期: 2013年10月29日 注意: API可能有演进,所以需要看当前时间决定是否有用 继承结构: public class WebView extends AbsoluteL ...

  3. Android KTX简介

    Android KTX简介 Android KTX简介 介绍 主要功能 字符串转为URI SharedPreferences Path View的onPreDraw监听 代码接入 原理介绍 Exten ...

  4. Picasso使用简介及分析

    Picasso Picasso是Square公司出品的一款非常优秀的开源图片加载库,是目前Android开发中超级流行的图片加载库之一,今天我们就来分析下他的使用及实现流程. 使用简介 首先在项目中引 ...

  5. etcd 笔记(01)— etcd 简介、特点、应用场景、常用术语、分布式 CAP 理论、分布式原理

    1. etcd 简介 etcd 官网定义: A highly-available key value store for shared configuration and service discov ...

  6. Docker学习(一)-----Docker简介与安装

    一.Docker介绍 1.1什么是docker Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源 Docker可以让开发者打包他们的应用以及依赖包到一个轻量级,可移植 ...

  7. 【Spring】框架简介

    [Spring]框架简介 Spring是什么 Spring是分层的Java SE/EE应用full-stack轻量级开源框架,以IOC(Inverse Of Control:反转控制)和AOP(Asp ...

  8. TensorRT简介

    TensorRT 介绍 引用:https://arleyzhang.github.io/articles/7f4b25ce/ 1 简介 TensorRT是一个高性能的深度学习推理(Inference) ...

  9. 谷粒商城学习笔记——第一期:项目简介

    一.项目简介 1. 项目背景 市面上有5种常见的电商模式 B2B.B2C.C2B.C2C.O2O B2B 模式(Business to Business),是指商家和商家建立的商业关系.如阿里巴巴 B ...

最新文章

  1. Microsoft Teams Voice语音落地系列-5 实战: Sonus语音网关配置
  2. 博客园win8客户端开发记录5-app设置 登录 回复评论
  3. JAVA两类比较器的区别(Comparable,Comparator)
  4. 第三季-第10课-时间编程
  5. 软考程序员-C专题(1)
  6. 数字图像处理 冈萨雷斯 资源下载
  7. aodv协议c语言实现,TinyOS在CC2530下的移植及AODV路由协议的实现
  8. 三角矩阵的逆矩阵怎么求_「线性代数」求可逆矩阵P,使得相似矩阵对角化
  9. Java链表入门(超详细)
  10. 用友软件用友二次开发用友单据导入用友凭证导入工具用友EXCEL导入工具EXCEL导入凭证
  11. python爬虫 爬取百合网的女人们和男人们
  12. 浅析vendor_init
  13. C++实现Cholesky分解
  14. python爬取电影信息并插入至MySQL数据库
  15. python编写sql注入工具毕业设计_Python编写SQL注入工具(2)
  16. 机器人genghis_iRobot的智慧家居:从扫地机器人和擦地机器人的联动开始
  17. 「博文视点」专访黄哲铿/ Mr.K:未来三年,如何努力?如何赚钱?如何发展?...
  18. EmailEditView的实现(仿知乎邮箱登录效果)
  19. FPS游戏:视角 4*4 矩阵的特点
  20. 黑马旅游网——分页数据展示(难点)和旅游线路名称查询

热门文章

  1. 【数字信号处理】周期延拓 ( 周期延拓的两种情况 | L ≥ N | L ≤ N )
  2. 【错误记录】PyCharm 运行 Python 程序报错 ( PEP 8: E305 expected 2 blank lines after class or function definiti )
  3. 【Java 并发编程】线程池机制 ( 测试线程开销 | 启动线程分析 | 用户态 | 内核态 | 用户线程 | 内核线程 | 轻量级进程 )
  4. 【错误记录】Android Studio 编译报错 ( cannot open this project, please retry with version 4.2 or newer. )
  5. 【RecyclerView】二、RecyclerView 简介 ( RecyclerView 特点 | RecyclerView 涉及到的类 )
  6. 【DBMS 数据库管理系统】数据库 -> 数据仓库 ( 数据处理类型 | 传统数据库 | 数据库不适用于分析型应用 )
  7. 【面向对象设计模式】 适配器模式 (二)
  8. CF 529B Group Photo 2 (online mirror version)
  9. 计算机设计思想 —— 代理(proxy)
  10. java 中文及特殊字符校验