ViewTreeObserver类概述
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
====================================================================================
类概述
用于注册监听的视图树观察者(observer),在视图树种全局事件改变时得到通知。这个全局事件不仅还包括整个树的布局,从绘画过程开始,触摸模式的改变等。ViewTreeObserver不能够被应用程序实例化,因为它是由视图提供,参照getViewTreeObserver()以查看更多信息。
当一个视图树将要绘制时,所要调用的回调函数的接口类
ImageView iv = (ImageView) findViewById(R.id.flash);
iv.setBackgroundResource(R.anim.flash);
ad = (AnimationDrawable) iv.getBackground();
iv.getViewTreeObserver().addOnPreDrawListener(opdl);
OnPreDrawListener opdl = new OnPreDrawListener() {
public boolean onPreDraw() {
ad.start();
return true; // 注意此行返回的值
}
};
ViewTreeObserver类概述的更多相关文章
- [引]LINQ to XML 类概述
本文转自:http://msdn.microsoft.com/zh-cn/library/bb387023.aspx 本主题提供 System.Xml.Linq 命名空间中 LINQ to XML 类 ...
- Java基础知识强化之集合框架笔记68:Collections类概述和成员方法(备注:Collection 和 Collections区别)
1. Collections类概述: 针对集合操作的工具类,都是静态方法. 2. Collection 和 Collections的区别: Collections是个java.util下的类,它包含 ...
- Java基础知识强化89:Date类之Data类概述及其方法
1. Date类概述 类Date表示特定的瞬间,精确到毫秒 2. 构造方法 public Date():根据当前默认毫秒值创建日期对象 public Date(long date):根据给定的毫秒值创 ...
- Java基础知识强化82:Random类概述和方法使用
1. Random类 public class Random extends Object implements Serializable: 此类的实例用于生成伪随机数流.此类使用48位种子. (1) ...
- Java——File类概述
body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2p ...
- java I/O流类概述
java I/O流类概述
- iOS开发值NSUserDefaults类概述
NSUserDefaults类概述 NSUserDefaults类为和默认的系统进行交互提供了一个系统编程接口.默认的系统允许一个应用来定制它的行为以适应用户的喜好.例如,你可以允许用户去决定你的应用 ...
- 【JAVA Properties类概述】
一.概述. 之前说过,该对象是和IO流相结合的技术,所以和IO流结合在一起来讲比较合适. public class Propertiesextends Hashtable<Object,Obje ...
- Object类概述
Object:类 Object 是类层次结构的根类.每个类都使用 Object 作为超类.每个类都直接或者间接的继承自Object类. Object类的方法:public int hashCode() ...
随机推荐
- BZOJ 1043 HAOI2008 下落的圆盘 计算几何
题目大意:n个圆盘依次下落.求终于能看到的轮廓线面积 円盘反对! 让我们一起团结起来! 赶走円盘! 咳咳.非常神的一道题 今天去看了题解和白书才搞出来-- 首先我们倒着做 对于每一个圆盘处理出在它之后 ...
- OA系统权限管理设计(转载)
不论什么系统都离不开权限的管理,有一个好的权限管理模块,不仅使我们的系统操作自如,管理方便,也为系统加入亮点. l 不同职责的人员,对于系统操作的权限应该是不同的.优秀的业务系统,这是 ...
- zookeeper的C#Client
最近在搭一套soa, 服务使用java/scala 的finagle 协议使用thrift 然后 finagle默认服务端会是使用zookeeper作为节点存储.. 所以想要访问具体服务,需要先通过 ...
- MyBatis之三:多表联合查询
在这篇文章里面主要讲解如何在mybatis里面使用一对一.一对多.多表联合查询(类似视图)操作的例子. 注:阅读本文前请先大概看一下之前两篇文章. 一.表结构 班级表class,学生表student, ...
- Android版本号的识别——$(PLATFORM_VERSION)
#/******************************************************************************#*@file Android.mk#* ...
- HDU 1498 50 years, 50 colors (行列匹配+最小顶点覆盖)
题目:点击打开链接 题意:每个格子有不同颜色的气球用不同数字表示,每次可选某一行 或某一列来戳气球.每个人有K次机会.求最后哪些气球不能在 k次机会内 ...
- cuda-convnet 卷积神经网络 一般性结构卷积核个数 和 输入输出的关系以及输入输出的个数的说明:
卷积神经网络 一般性结构卷积核个数和 输入输出的关系以及输入输出的个数的说明: 以cifar-10为例: Initialized data layer 'data', producing3072 ou ...
- C 高级编程 1
内存管理层次: 硬件层次: 内存结构管理 内核算层次: 内存映射 堆扩展 数据结构层次: 智能指针: stl :在多线程,共享内存有问题 SGI公司实现了STL ,开发了OPENGL库 语言层次:C: ...
- 如何删除google流氓扩展(强制安装,并且无权限删除)
chrome现在也是流氓遍地跑, 没比IE安全到哪里. TubeAdblocKer 这个流氓扩展,强制安装,无法删除.google了一大堆方法,全部无效.祭出了filelocator这个神器之后,终于 ...
- hive-初看hive
网上搜了一下找了很多介绍hive的资料,不是官方翻译就是含糊描述,对于刚接触的很难直观认识 我从一本介绍hadoop的书里找到了一些hive的资料,没太多废话.可以看看 http://pan.baid ...