zoukankan      html  css  js  c++  java
  • android requestDisallowInterceptTouchEvent用途

           ViewPager来实现左右滑动切换tab。假设tab的某一项中嵌入了水平可滑动的View就会让你有些不爽,比方想滑动tab项中的可水平滑动的控件,却导致tab切换。

    由于Android事件机制是从父View传向子View的,能够去检測你当前子View是不是在有可滑动控件等,决定事件是否拦截。可是这个麻烦,并且并不能解决全部的问题(必须检測触摸点是否在这个控件上面),事实上有比較简单的方法,在你嵌套的控件中注入ViewPager实例(调用控件的getParent()方法),然后在onTouchEvent。onInterceptTouchEvent。dispatchTouchEvent里面告诉父View。也就是ViewPager不要拦截该控件上的触摸事件。

    1 requestDisallowInterceptTouchEvent(true)

    代码一般例如以下:

    复制代码
    复制代码
     1 public boolean onTouch(View v, MotionEvent event) {
     2     switch (event.getAction()) {
     3     case MotionEvent.ACTION_MOVE: 
     4         pager.requestDisallowInterceptTouchEvent(true);
     5         break;
     6     case MotionEvent.ACTION_UP:
     7     case MotionEvent.ACTION_CANCEL:
     8         pager.requestDisallowInterceptTouchEvent(false);
     9         break;
    10     }
    11 }
    复制代码
    复制代码

    当用户按下的时候,我们告诉父组件。不要拦截我的事件(这当子组件能够正常响应的一个事件一时间),拿起会告诉家长成分可以预防。

    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    【文智背后的奥秘】系列篇——基于CRF的人名识别
    【文智背后的奥秘】系列篇——自动文本分类
    浅析HTTPS与SSL原理
    memcached与redis实现的对比
    谈谈后台服务的灰度发布与监控
    Redis单机主从高可用性优化
    ./configure、make、make install
    qtchooser
    Linux上好用的工具集合
    eclipse使用javaFX写一个HelloWorkld
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/4869206.html
Copyright © 2011-2022 走看看