ViewTreeObserver

API文档链接

Structure

public final class
ViewTreeObserver
extends Object
java.lang.Object
android.view.ViewTreeObserver
继承Object

Class Overview

A view tree observer is used to register listeners that can be notified of global changes in the view tree. Such global events include, but are not limited to, layout of the whole tree, beginning of the drawing pass, touch mode change…. A ViewTreeObserver should never be instantiated by applications as it is provided by the views hierarchy. Refer to getViewTreeObserver() for more information.
此为监听本视图树是否有变化的观察者,这些变化包括整个树的布局,开始绘图,触摸方式发生改变….等等,此观察者不能实例化。

Summery

  • Interface

    ViewTreeObserver.OnDrawListener 监听视图树将被绘图
    ViewTreeObserver.OnPreDrawListener 同上
    ViewTreeObserver.OnGlobalFocusChangeListener 监听焦点
    ViewTreeObserver.OnGlobalLayoutListener 状态、可见性
    ViewTreeObserver.OnScrollChangedListener 滚动
    ViewTreeObserver.OnTouchModeChangeListener 触摸模式
    ViewTreeObserver.OnWindowAttachListener 从win添加or者分离视图结构
    
  • Method
    public void
    addOnDrawListener(ViewTreeObserver.OnDrawListener listener)
    removeOnDrawListener(ViewTreeObserver.OnDrawListener victim)
    …………
    查看具体API文档

    Example:
    view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
    @Override
    public void onGlobalLayout() {
     //do something
     //视图会一直重绘,故要及时撤销监听
      if (Build.VERSION.SDK_INT >=       Build.VERSION_CODES.JELLY_BEAN) {                    view.getViewTreeObserver().removeOnGlobalLayoutListener(this);
    } else {                    view.getViewTreeObserver().removeGlobalOnLayoutListener(this);
      }
    }
    });
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值