以前没有做过真正的需求,所以从来没有觉得事件拦截分发处理有什么好懂的。

现在做需求了,真的是什么需求都有,你作为开发都要去研究实现。比如说,只能点不能滑动的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);
} @Override
public boolean onTouchEvent(MotionEvent event) {
// 触摸事件不触发
if (this.enabled) {
return super.onTouchEvent(event);
}
return false;
} @Override
public boolean onInterceptTouchEvent(MotionEvent event) {
// 不处理触摸拦截事件
if (this.enabled) {
return super.onInterceptTouchEvent(event);
}
return false;
} @Override
public 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;
}
}

最新文章

  1. 记一周cdqz训练
  2. Echarts 之二——地市联动数据统计
  3. 【TYVJ1864】[Poetize I]守卫者的挑战 概率与期望
  4. 虚拟机和windows主机中的文件共享
  5. 数据库 'MessageManage' 的事务日志已满。若要查明无法重用日志中的空间的原因,请参阅 sys.databases 中的 log_reuse_wait_desc 列。
  6. 在ubuntu上搭建开发环境10---英文版ubuntu安装中文输入法
  7. [USACO精选] 第三章 排序
  8. 射频识别技术漫谈(14)——Mifare S50与S70的存取控制
  9. C# WinForm 类似QQ靠近屏幕边缘隐藏显示
  10. css控制文字自动换行
  11. (转载)SPARKR,对RDD操作的介绍
  12. Hudson持续集成服务器的安装配置与使用
  13. ---command line edit and histroy of perl cpan shell
  14. 深度学习中,使用regularization正则化(weight_decay)的好处,loss=nan
  15. _ZNote_Qt_对话框_模态非模态
  16. 深度 | 机器学习敲门砖:任何人都能看懂的TensorFlow介绍【转】
  17. bzoj4232: [Neerc2011 Northern]Kids Like Cakes
  18. Kubernetes 详解
  19. Java 泛型 详解
  20. 使用c#特性,给方法或类打自定义标签再反射获取

热门文章

  1. 数据批量删除_从页面js到后台数据库
  2. PCB仿真软件与电磁场求解器的算法
  3. windows10下 Jupyter 添加anaconda环境
  4. Linux远程桌面(一)
  5. ubuntu 安装 deb 软件包
  6. *204. Count Primes (siecing prime)
  7. python 的矩阵运算——numpy
  8. 2018.8.6 学习 log4j.properties 配置文件
  9. Mac 中显示资源库(Library)文件夹目录的几种方法
  10. Hibernate 异常总结