Android为TV端助力 ViewTreeObserver(转载)
public final class ViewTreeObserver extends Object
java.lang.Object
android.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)

Android为TV端助力 ViewTreeObserver(转载)的更多相关文章
- Android为TV端助力(转载)
作者地址http://www.jianshu.com/u/63915ef020e2 针对Android Tv的自定义RecyclerView 作者 wenju_song 关注 2016.12.09 1 ...
- Android为TV端助力 转载:RecyclerView分页加载
package com.android.ryane.pulltoloaddata_recyclerview; import android.os.Handler;import android.os.L ...
- Android为TV端助力 fragment 的用法以及与activity的交互和保存数据的方法,包括屏幕切换(转载)!
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37992017 1.管理Fragment回退栈 类似与Android系统为Acti ...
- Android为TV端助力:(转载)修改TextView字体样式
一.开篇 因为 Android 字体相关的内容还比较多的.有时候其实我们只需要调整一下属性就可以满足设计师的需求,或者是一个退后的方案(毕竟有发版的时间卡住了),有一些效果可以大概满足需求. 那么本文 ...
- Android为TV端助力转载:码农小阿飞(SpannableString)
用SpannableString打造绚丽多彩的文本显示效果 引语 TeXtView大家应该都不陌生,文本展示控件嘛! 就用TextView显示普普通通的文本,OK,很简单,Android入门的都会,没 ...
- Android为TV端助力 转载:android MVC设计模式
Controller控制器 import android.app.Dialog; import android.app.ProgressDialog; import android.os.Bundle ...
- Android为TV端助力 转载:Android绘图Canvas十八般武器之Shader详解及实战篇(上)
前言 Android中绘图离不开的就是Canvas了,Canvas是一个庞大的知识体系,有Java层的,也有jni层深入到Framework.Canvas有许多的知识内容,构建了一个武器库一般,所谓十 ...
- Android为TV端助力 转载:Android绘图Canvas十八般武器之Shader详解及实战篇(下)
LinearGradient 线性渐变渲染器 LinearGradient中文翻译过来就是线性渐变的意思.线性渐变通俗来讲就是给起点设置一个颜色值如#faf84d,终点设置一个颜色值如#CC423C, ...
- Android为TV端助力 转载:android自定义view实战(温度控制表)!
效果图 package cn.ljuns.temperature.view; import com.example.mvp.R; import android.content.Context;impo ...
随机推荐
- [Swift]LeetCode442. 数组中重复的数据 | Find All Duplicates in an Array
Given an array of integers, 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and others ...
- Vmware安装Ubuntu ==> 连网成功
由于工作需要,得把NS3安装到内网服务器中,大家知道这个是不能连接外网的,学校又没有Ubuntu高校源.NS3要先安装一大堆的依赖,让人头痛的是在内网里有没发以终端指令形式安装,针对这种麻烦,找到两个 ...
- java热加载和热部署
JAVA热部署和热加载 联系与区别 Java热部署与热加载的联系 1.不重启服务器编译/部署项目 2.基于Java的类加载器实现 区别 部署方式 热部署在服务器运行时重新部署项目 热加载在运行时重新加 ...
- javascript之reduce()方法的使用
以前看到reduce方法,总是看得我头皮发麻,今天无意间又遇到他了,于是学习了下,接触之后,觉得这个方法还挺好用的,在很多地方都可以派上用场,比如,数组中元素求和.数组去重.求数组中的最大值或最小值等 ...
- 英语笔记3(git)
备注 一: Staging Modified Files Let’s change a file that was already tracked. (tracked 表示该文件已经被git管理过,再 ...
- 微信公众号的开发 Senparc.Weixin.dll使用
项目需要,做个微信公众号,之前从未做过,前期挺懵的,再次记录一下,一切困难都是纸老虎(哈哈) 服务号是公司申请的微信公共账号,订阅号是个人申请的.建议开发者自己申请一个测试账号,方便使用,但是测试账号 ...
- React 中的key值
在react中必须要有key值,key不是用来提升react的性能的,react中的key属性,它是一个特殊的属性,它是出现不是给开发者用的(例如你为一个组件设置key之后不能获取组件的这个key p ...
- 【转】kali配置--修改IP和DNS
修改IP地址 1 编辑文件 nano /etc/network/interfaces 2 在选择静态IP或DHCP,编辑文件内容并保存退出 (1)静态IP: ``` #Loop回环地址 auto lo ...
- 『Candies 差分约束系统』
差分约束系统 我们先来认识一下差分约束系统鸭! 差分约束系统是一种特殊的\(n\)元一次不等式组,它包含了\(n\)个变量\(x_1-x_n\)以及\(m\)个不等式(约束条件).其中每一个不等式形如 ...
- 在.NET Core console application中使用User Secrets(用户机密)
微软很坑地只在Microsoft.NET.Sdk.Web中提供了VS项目右键菜单的"管理用户机密"/"Manage User Secrets"菜单项,在使用Mi ...