以前没有做过真正的需求,所以从来没有觉得事件拦截分发处理有什么好懂的。
现在做需求了,真的是什么需求都有,你作为开发都要去研究实现。比如说,只能点不能滑动的viewpager。其实这都可以不用viewpager了。直接用fragment的replace掉就行了。那我想要不可以滑动的viewpager怎么办。
很简单,在处理事件的时候,return true表示自己处理,不往下面传递。自己消费,那如果你不想自己处理,自己不做任何处理,就 return false; 那viewpager就不会滑动了。

下面就是不可以滑动的viewpager:

禁止左右滑动 包括连续滑动也不响应
同时不影响setCurrentItem/*
* 文件名:CustomViewPager
*/package com.example.widget;import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;public class CustomViewPager extends ViewPager {private boolean enabled = false;public CustomViewPager(Context context) {super(context);}public CustomViewPager(Context context, AttributeSet attrs) {super(context, attrs);}@Overridepublic boolean onTouchEvent(MotionEvent event) {// 触摸事件不触发if (this.enabled) {return super.onTouchEvent(event);}return false;}@Overridepublic boolean onInterceptTouchEvent(MotionEvent event) {// 不处理触摸拦截事件if (this.enabled) {return super.onInterceptTouchEvent(event);}return false;}@Overridepublic boolean dispatchTouchEvent(MotionEvent event) {// 分发事件,这个是必须要的,如果把这个方法覆盖了,那么ViewPager的子View就接收不到事件了if (this.enabled) {return super.dispatchTouchEvent(event);}return super.dispatchTouchEvent(event);}public void setPagingEnabled(boolean enabled) {this.enabled = enabled;}
}

android 事件拦截 (Viewpager不可以左右滑动)相关推荐

  1. 【Android 事件分发】ItemTouchHelper 简介 ( 拖动/滑动事件 | ItemTouchHelper.Callback 回调 )

    Android 事件分发 系列文章目录 [Android 事件分发]事件分发源码分析 ( 驱动层通过中断传递事件 | WindowManagerService 向 View 层传递事件 ) [Andr ...

  2. android 拦截点击事件,Android事件拦截机制

    一直对事件拦截不是很清楚,读Android群英传的笔记,记录下. 要了解事件拦截,首先要了解触摸事件,触摸事件是捕获触摸屏幕后发生的事件.按一下屏幕通常会有几个事件发生,当按下屏幕,这是事件1.滑动了 ...

  3. 反思|Android 事件拦截机制的设计与实现,android组件化开发

    最顶层View直接持有最下层某个View的引用合理吗?答案是否定的.首先,这导致View层级依赖之间的混乱:其次,顶层View本身持有了最下层某个View的引用,则这之间若干个层级的View的targ ...

  4. Android开发之ViewPager结合Fragment实现滑动页面的效果(源代码分享)

    前段日子的博客有介绍过关于ViewPager的使用,发现大家对那篇博客都情有独钟,今天我们就在来看一下ViewPager在Fragment中的使用吧,因为ViewPager是在补丁包中添加的低版本的包 ...

  5. Android:Touch事件拦截机制

    道长说了这么多自定义View,还没说自定义View会遇到什么问题,其实这个问题不止在自定义View中存在.在开发中遇到控件嵌套,堆叠都会出现,比如:点击子控件,子控件接收不到点击事件等等.这里道长简单 ...

  6. 【Android 事件分发】ItemTouchHelper 源码分析 ( OnItemTouchListener 事件监听器源码分析 二 )

    Android 事件分发 系列文章目录 [Android 事件分发]事件分发源码分析 ( 驱动层通过中断传递事件 | WindowManagerService 向 View 层传递事件 ) [Andr ...

  7. 【Android 事件分发】ItemTouchHelper 源码分析 ( OnItemTouchListener 事件监听器源码分析 )

    Android 事件分发 系列文章目录 [Android 事件分发]事件分发源码分析 ( 驱动层通过中断传递事件 | WindowManagerService 向 View 层传递事件 ) [Andr ...

  8. Android事件传递机制(转)

    Android事件构成 在Android中,事件主要包括点按.长按.拖拽.滑动等,点按又包括单击和双击,另外还包括单指操作和多指操作.所有这些都构成了Android中的事件响应.总的来说,所有的事件都 ...

  9. 【Android 事件分发】MotionEvent.ACTION_DOWN 按下事件分发流程( Activity | ViewGroup | View )

    Android 事件分发 系列文章目录 [Android 事件分发]事件分发源码分析 ( 驱动层通过中断传递事件 | WindowManagerService 向 View 层传递事件 ) [Andr ...

最新文章

  1. 没有绿幕,AI也能完美视频抠图,发丝毕现,毫无违和感 | CVPR
  2. App设计灵感之十二组精美的电商App设计案例
  3. 外卖匹配系统_“外卖智能算法”和大学生有啥关系?来自工科生的专业分析
  4. js中将有层级关系的一维数据转换为父子级关系的二维数据、菜单权限三级层级数据实现(树形结构数据)
  5. vue-ls vue 本地储存示例
  6. 十个C语言项目,从小白到月入10K
  7. 窥探PTAM之Mapping线程
  8. java中instanceof是什么意思_java 中的instanceof用法详解及instanceof是什么意思(推荐)...
  9. Java调用阿里云对象存储OSS
  10. BT技术原理(BitTorrent)
  11. Arction图表控件LightningChart振动分析可以检测什么?
  12. 输入一个年份和一个月份,输出该年该月有多少天
  13. 华为云服务器更换操作系统,云服务器更换操作系统
  14. 如何写好 5000 行的 SQL 代码
  15. Tableau实战 公司投资分析
  16. word中右键图片菜单没有更改图片选项
  17. python-纯函数
  18. 模拟卷Leetcode【普通】377. 组合总和 Ⅳ
  19. iOS初级开发学习笔记:微信充值
  20. 视频超分辨率重建测试集下载(VID4数据集、UDM10数据集)

热门文章

  1. matlab在线性系统理论中的应用,线性系统理论相关的matlab应用.ppt
  2. mysql 中文 length_mysql length()中文长度一些问题整理
  3. java futher多线程_Java多线程系列--“JUC集合”05之 ConcurrentSkipListMap
  4. 后台定时给页面发送数据_苹果CMS10全自动定时采集教程
  5. c 初始化char**_CC++|指针详述及实例分析
  6. vim配置python开发环境_VIM插件管理及python开发环境配置
  7. linux中python如何调用matlab的数据_?如何在Python中加入多个数据帧?
  8. PythonNET网络编程3
  9. ScheduledThreadPoolExecutor详解
  10. Qt5: SpringAnimation