view变化监听器ViewTreeObserver的简单使用(附小demo)


祝大家新年快乐,新的一年技术涨涨涨~~


ViewTreeObserver 有五个监听接口:

interface  ViewTreeObserver.OnGlobalFocusChangeListener         
   //当在一个视图树中的焦点状态发生改变时,所要调用的回调函数的接口类   
interface  ViewTreeObserver.OnGlobalLayoutListener
   //当在一个视图树中全局布局发生改变或者视图树中的某个视图的可视状态发生改变时,所要调用的回调函数的接口类  
interface  ViewTreeObserver.OnPreDrawListener
   //当一个视图树将要绘制时,所要调用的回调函数的接口类   
interface  ViewTreeObserver.OnScrollChangedListener
   //当一个视图树中的一些组件发生滚动时,所要调用的回调函数的接口类   
interface  ViewTreeObserver.OnTouchModeChangeListener
   //当一个视图树的触摸模式发生改变时,所要调用的回调函数的接口类


看注释很清楚可以看到几个接口的用处。主要都是用于监听控件的状态。

拿一个接口简要说明其使用方法(其实和点击事件的使用方法类似):


(一)在类上实现接口,实现对应方法,在监听方法内做相应的处理。

<span style="font-size:18px;">public class MainActivity extends AppCompatActivity implements ViewTreeObserver.OnTouchModeChangeListener</span>
需要监听的视图或者控件 view.getViewTreeObserver

增加相应的监听:view.addOnTouchModeChangeListener(this)

<span style="font-size:18px;">@Override
    public void onTouchModeChanged(boolean isInTouchMode)
    {
        if (isInTouchMode)
            tv_show.setText("In touch mode");
        else
            tv_show.setText("Not in touch mode");
    }</span>

(二)直接对视图和控件的使用

<span style="font-size:18px;">listforlisten.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() {
            @Override
            public void onScrollChanged() {
                System.out.println("开始滚动");
            }
        });</span>
view 先getViewTreeObserver,添加监听


整体和点击事件的监听类似。



原创文章,转载请注明出处:
http://blog.csdn.net/qq_33078541?viewmode=contents



简单使用demo,免积分下载

http://download.csdn.net/detail/qq_33078541/9434363

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值