Android之ViewTreeObserver
2016-03-08 17:28
323 查看
前两天写了个加载更多的小功能,用到了Android的ViewTreeObserver这个类,在这里对这个类详细解释下。
当在一个视图树中的焦点状态发生改变时,所要调用的回调函数的接口类
interface ViewTreeObserver.OnGlobalLayoutListener
当在一个视图树中全局布局发生改变或者视图树中的某个视图的可视状态发生改变时,所要调用的回调函数的接口类
interface ViewTreeObserver.OnPreDrawListener
当一个视图树将要绘制时,所要调用的回调函数的接口类
interface ViewTreeObserver.OnScrollChangedListener
当一个视图树中的一些组件发生滚动时,所要调用的回调函数的接口类
interface ViewTreeObserver.OnTouchModeChangeListener
当一个视图树的触摸模式发生改变时,所要调用的回调函数的接口类
基本概念
这是一个注册监听视图树的观察者(observer),在视图树种全局事件改变时得到通知。这个全局事件不仅还包括整个树的布局,从绘画过程开始,触摸模式的改变等。最常见的用途时通过监听获知什么时候,视图的宽高值确定了,可以获取了,以便更改UI。主要接口:监听器
interface ViewTreeObserver.OnGlobalFocusChangeListener当在一个视图树中的焦点状态发生改变时,所要调用的回调函数的接口类
interface ViewTreeObserver.OnGlobalLayoutListener
当在一个视图树中全局布局发生改变或者视图树中的某个视图的可视状态发生改变时,所要调用的回调函数的接口类
interface ViewTreeObserver.OnPreDrawListener
当一个视图树将要绘制时,所要调用的回调函数的接口类
interface ViewTreeObserver.OnScrollChangedListener
当一个视图树中的一些组件发生滚动时,所要调用的回调函数的接口类
interface ViewTreeObserver.OnTouchModeChangeListener
当一个视图树的触摸模式发生改变时,所要调用的回调函数的接口类
代码示例:
请点击链接:Android在onCreate()方法中动态获取TextView控件的高度注意:
如何获取一个控件的长和高,相信很多朋友第一眼看见这个问题都会觉得很简单,直接在onCreate里面调用getWidth、getMeasuredWidth不就可以获得了吗,但是,事实上是并没有简单的,不信的话,你可以去试一下,在onCreate里面,你是无法获得长宽值的,始终为0。相关文章推荐
- android Json解析详解(详细代码)
- android studio 打包混淆jar
- android Matrix图片手势放大缩小,拖动
- Android的classloader
- Android 日常开发总结的技术经验 60 条
- android成长日记 10.关于BroadcastReceiver的详细说明
- Android 控件使用教程(三)—— NineGridImageView 展示图片
- android-百度地图-手机显示地图
- Android Looper和Handler小结
- Android 控件使用教程(二)—— RecyclerView 展示图片
- Android Studio 小技巧合集
- 最佳实践之Android代码规范
- Android Service大总结
- android开发之屏幕尺寸问题
- android之adb命令操作
- Android 内存泄漏调试
- 把Android项目迁移到Android Studio常见的错误
- Android开发小知识-BroadCastReceiver的使用
- Android实现搜索功能并本地保存搜索历史记录
- android 强引用、弱引用、软引用、虚引用