标签:android blog http java color strong
A view tree observer is used to register listeners that canbe notified of global changes in the view tree. Such global eventsinclude, but are not limited to, layout of the whole tree,beginning of the drawing pass, touch mode change.... AViewTreeObserver should never be instantiated by applications as itis provided by the views hierarchy. Refer toView.getViewTreeObserver() for moreinformation.
从上面的描述中,不难看出,ViewTreeObserver是用来帮助我们监听某些View的某些变化的。
在 ViewTreeObserver 中,包含了以下几个接口:
interfaceViewTreeObserver.OnGlobalFocusChangeListener
interfaceViewTreeObserver.OnGlobalLayoutListener
interface ViewTreeObserver.OnPreDrawListener
interfaceViewTreeObserver.OnScrollChangedListener
interfaceViewTreeObserver.OnTouchModeChangeListener
本文将测试除 ViewTreeObserver.OnScrollChangedListener外的四个接口
1. 创建一个 Android Project ,修改 main.xml 使之如下:
注意:给 layout 增加一个 id : full_screen
2. Activity 对应的 Java 代码如下:
3. 运行结果:
可以看到第一个 EditText 中存在字体发生了变化的提示信息,这种效果是在 onPreDraw() 方法中实现的。
用鼠标点击屏幕上的第二个 EditText ,
有两个变化:
一个是有 Not in touch mode 变成了 In touch mode ,二是显示了焦点变化方面的信息。它们分别是 onTouchModeChanged 和 onGlobalFocusChanged 这两个方法所输出的信息。
如果用模拟器右边的键盘进行操作,将交掉移动到第一个 EditText ,则又会回到 Not in touch mode 的状态。
点击 OK 按钮,改变第二个 EditText 的可见性:
第一个 EditText 中的内容是在 onGlobalLayout 方法中设定的。
view变化监听器ViewTreeObserver介绍,布布扣,bubuko.com
标签:android blog http java color strong
原文地址:http://www.cnblogs.com/xgjblog/p/3853841.html