ViewTreeObserver简介
Android 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
//当一个视图树的触摸模式发生改变时,所要调用的回调函数的接口类
四、公共方法
/**注册一个回调函数,当在一个视图树中的焦点状态发生改变时调用这个回调函数。
* 参数 listener 将要被添加的回调函数
*异常 IllegalStateException 如果isAlive() 返回false
*/
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)
//当整个布局发生改变时通知相应的注册监听器。如果你强制对视图布局或者在一个没有附加到一个窗口的视图的层次结构或者在GONE状态下,它可以被手动的调用
public final void dispatchOnGlobalLayout () /**当一个视图树将要绘制时通知相应的注册监听器。如果这个监听器返回true,则这个绘制将被取消并重新计划。如果你强制对视图布局或者在一个没有附加到一个窗口的视图的层次结构或者在一个GONE状态下,它可以被手动的调用
*返回值 当前绘制能够取消并重新计划则返回true,否则返回false。
*/
public final boolean dispatchOnPreDraw () /**指示当前的ViewTreeObserver是否可用(alive)。当observer不可用时,任何方法的调用(除了这个方法)都将抛出一个异常。如果一个应用程序保持和ViewTreeObserver一个历时较长的引用,它应该总是需要在调用别的方法之前去检测这个方法的返回值。
*返回值 但这个对象可用则返回true,否则返回false
*/
public boolean isAlive () /**移除之前已经注册的全局布局回调函数。
*参数 victim 将要被移除的回调函数
*异常 IllegalStateException 如果isAlive() 返回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)
ViewTreeObserver简介的更多相关文章
- Android ViewTreeObserver简介
Android ViewTreeObserver简介 一.结构 public final class ViewTreeObserver extends Object java.lang.Objec ...
- Android为TV端助力 ViewTreeObserver(转载)
Android ViewTreeObserver简介 一.结构 public final class ViewTreeObserver extends Object java.lang.Objec ...
- WebView 简介
WebView 简介 日期: 2013年10月29日 注意: API可能有演进,所以需要看当前时间决定是否有用 继承结构: public class WebView extends AbsoluteL ...
- 监听视图树 ViewTreeObserver 获取View的宽高
前奏:在哪里可以获取到View的宽高 我们知道,在onCreate方法执行完毕以后,View才开始被测量,所以我们在onCreate方法里面通过view.getWidth()或view.getMeas ...
- ASP.NET Core 1.1 简介
ASP.NET Core 1.1 于2016年11月16日发布.这个版本包括许多伟大的新功能以及许多错误修复和一般的增强.这个版本包含了多个新的中间件组件.针对Windows的WebListener服 ...
- MVVM模式和在WPF中的实现(一)MVVM模式简介
MVVM模式解析和在WPF中的实现(一) MVVM模式简介 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在 ...
- Cassandra简介
在前面的一篇文章<图形数据库Neo4J简介>中,我们介绍了一种非常流行的图形数据库Neo4J的使用方法.而在本文中,我们将对另外一种类型的NoSQL数据库——Cassandra进行简单地介 ...
- REST简介
一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式.”但是在要求详细讲述它所提出的各个约束,以及如何开始搭建REST服务时,却很少有人能够清晰地说出它到底是什么,需要遵守什么样的准则. ...
- Microservice架构模式简介
在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书<Building Microservices>.该书描述了如何按照Mic ...
随机推荐
- PHP 导出 Excell
Vendor('PHPExcel179.PHPExcel');$objPHPExcel = new PHPExcel(); //创建PHPExcel对象//设置属性$objPHPExcel->g ...
- mysql性能优化学习笔记(5)数据库结构优化
一.选择合适的数据类型 1.使用可存下数据的最小的数据类型 2.使用简单地数据类型,Int<varchar 3.尽可能使用not null定义字段 4.尽量少用text, ...
- 16-GDBT(MART) 迭代决策树入门教程 | 简介
转载:http://blog.csdn.net/w28971023/article/details/8240756 GBDT(Gradient Boosting Decision Tree) 又叫 M ...
- Tomcat Remote Debug操作和原理
操作篇 这部分主要讲,如何开启tomcat远程调试,并佐以实例.本文方式适用于windows和linux. 假设有两台机器,A是tomcat服务器所在机器,B是IDE安装机器.A和B可以是同一台机器, ...
- css案例学习之class执行的顺序
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- getopt vs getopts
getopt示例 #!/bin/bash aflag=no args=`getopt a: $@` ]; then echo 'Usage: ...' exit fi set -- $args ] d ...
- 排列与组合的C语言实现
排列与组合是数学里的经典问题,由这个问题可引申出子集.字典排序等问题,那么,我们先看经典的排列与组合,怎么在程序里实现. 在网上搜了一下,关注这个问题的人还是挺多的,有不了人给出的回答是使用几个for ...
- nginx-gridfs 的安装配置和使用
(一)安装nginx前的准备 安装nginx需要安装openssl和pcre,具体安装步骤请参考nginx安装的相关博文 (二)nginx和nginx-gridfs 联合编译安装 nginx-grid ...
- 网易云课堂_C语言程序设计进阶_第8周:图形交互程序
8.2函数指针 8.2函数指针 #include <stdio.h> #include <stdlib.h> void f(int i) { printf("void ...
- jquery动态连接节点
<1> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://w ...