前两天写了个加载更多的小功能,用到了Android的ViewTreeObserver这个类,在这里对这个类详细解释下。


基本概念

这是一个注册监听视图树的观察者(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。

更多相关文章

  1. 【Android(安卓)Training - 09】高效地显示Bitmap图片 [ Lesson
  2. Android(安卓)面试题目总结【持续更新...】
  3. Android(安卓)Studio 新建一个简单的Jni-demo,实现了so库的生成与
  4. Android原生与H5交互的实现
  5. Android(安卓)音视频深入 十三 OpenSL ES 制作音乐播放器,能暂停
  6. AndroidUI学习
  7. android 生命周期研究资料
  8. 分享:Android(安卓)应用有哪些常见,浅谈常被利用的安全漏洞?
  9. 最全面的Android(安卓)Intent机制讲解

随机推荐

  1. 一 Android(安卓)O WiFi 框架变化
  2. 浅谈Android的移动存储SharedPreferences
  3. android EditText 添加图片表情以及在四
  4. Ubuntu 12.04.3 64位 安装android sdk完
  5. 有米平台 发布android软件教程
  6. 为usb网卡设置ip地址之一
  7. 搭建Android(安卓)UI Testing自动化测试
  8. Android 获取控件宽高的3种方法
  9. Android studio 使用AIDL 无法import cla
  10. android 常用小知识点 tips (二)