最近的项目中,有一个需求要用ViewPager中嵌套ViewPager去实现整个效果,没做任何处理做出来后,只能不停的滑动子ViewPager,父ViewPager就无法滑动了,这样肯定是不满足的,分析了一下原因,很显示是整个滑动事件都被子ViewPager消耗掉了,所以只能对ViewPager做一下自定义处理,才可以实现。以下是这个需求实现后的效果图:

  

  从图上就可以看出:我们用ViewPager中嵌套了ViewPager,而且要实现的是子ViewPager滑动到最后一页时,再滑就是滑动父ViewPager.下面将自定义的ViewPager代码贴出来,大家可以参考下。

  

/*********************************************************** @文件名称:MyViewPager.java* @创建时间:2014年11月18日 下午4:24:25* @修改历史:2014年11月18日创建初始版本**********************************************************/
public class MyViewPager extends ViewPager
{//父ViewPager的引用private ViewPager viewPager;private boolean flag = true;private float mLastMotionX;public BookstoreViewPager(Context context){super(context);}public BookstoreViewPager(Context context, AttributeSet attrs){super(context, attrs);}public ViewPager getViewPager(){return viewPager;}//处理前必须调用此方法初始化冲突ViewPagerpublic void setViewPager(ViewPager viewPager){this.viewPager = viewPager;}@Overridepublic boolean dispatchTouchEvent(MotionEvent ev){final float x = ev.getX();switch (ev.getAction()){case MotionEvent.ACTION_DOWN:// 使父控件不处理任何触摸事件viewPager.requestDisallowInterceptTouchEvent(true);flag = true;mLastMotionX = x;break;case MotionEvent.ACTION_MOVE:if (flag){if (x - mLastMotionX > 5 && getCurrentItem() == 0){flag = false;viewPager.requestDisallowInterceptTouchEvent(false); //将事件交由父控件处理}if (x - mLastMotionX < -5 && getCurrentItem() == getAdapter().getCount() - 1){flag = false;viewPager.requestDisallowInterceptTouchEvent(false);}}break;case MotionEvent.ACTION_UP:viewPager.requestDisallowInterceptTouchEvent(false);break;case MotionEvent.ACTION_CANCEL:viewPager.requestDisallowInterceptTouchEvent(false);break;}return super.dispatchTouchEvent(ev);}}

andorid自定义ViewPager之——子ViewPager滑到边缘后直接滑动父ViewPager相关推荐

  1. android左右滑动fragment,Android基于ViewPager+Fragment实现左右滑屏效果的方法

    本文实例讲述了Android基于ViewPager+Fragment实现左右滑屏效果的方法.分享给大家供大家参考,具体如下: 1.xml布局模板 android:id="@+id/local ...

  2. Android开发之可以在临界点左右滑动的ViewPager

    老套路先上效果图: 可以在临界点滑动的ViewPager,上图效果是:两个ViewPager,一个垂直一个水平滑动的,这次主要讲解临界点左右滑动,实际上很简单,只需要自定义ViewPager在事件分发 ...

  3. ViewPager中呈现前一页和后一页的内容

    目录 目录 前言 思路 关键函数 自定义PagerContainer 前言 今天需要实现如下图所示的布局效果: 第一反应是利用ViewDragHelper写一个自定义布局,然后实现拖拽效果.但是如果这 ...

  4. 可以动态控制左右滑动的ViewPager, 禁止ViewPager左右滑动

    可以动态控制左右滑动的ViewPager 禁止ViewPager左右滑动 package com.geaosu.test.act;import android.content.Context; imp ...

  5. iOS swift5 UISlider 自定义UISlider 修改滑块和滑条的大小

    文章目录 UISlider添加事件,点击事件,滑动事件 1.滑动事件:滑动过程中一直触发的事件 2.点击事件:滑动完成,放开手才触发的事件 自定义UISlider 修改滑块和滑条的大小 UISlide ...

  6. [转]MFC子线程更改图像数据后更新主窗口图像显示方法

    程序思路是由外部的输入输出控制卡发出采集图像信号,之后相机采集图像得到图像数据指针,接收图像数据指针创建成图像最后显示到MFC对话框应用程序的Picture Control控件上,同时,为了标定相机位 ...

  7. VMware找不到父磁盘 父虚拟磁盘在子虚拟磁盘创建之后被修改过。父虚拟磁盘的内容 ID 与子虚拟磁盘中对应的父内容 ID 不匹配

    在移动VMDK磁盘或者更改操作系统后,往往会出现"VMware找不到父磁盘 父虚拟磁盘在子虚拟磁盘创建之后被修改过.父虚拟磁盘的内容 ID 与子虚拟磁盘中对应的父内容 ID 不匹配" ...

  8. 042——VUE中组件之子组件使用$on与$emit事件触发父组件实现购物车功能

    <!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8" ...

  9. 记录下帮助一位网友解决的关于android子控件的onTouch或onClick和父OnTouch 冲突的问题。

    记录下帮助一位网友解决的关于android子控件的onTouch或onClick和父OnTouch 冲突的问题. 参考文章: (1)记录下帮助一位网友解决的关于android子控件的onTouch或o ...

  10. 【疑点】当子元素全部浮动时,怎么解决父元素塌陷的问题?

    [疑点]当子元素全部浮动时,怎么解决父元素塌陷的问题? 参考文章: (1)[疑点]当子元素全部浮动时,怎么解决父元素塌陷的问题? (2)https://www.cnblogs.com/roashley ...

最新文章

  1. 收录对网站优化起到什么作用?
  2. ICCV 2019 开源论文 | ShapeMatchingGAN:打造炫酷动态的艺术字
  3. mysql查询语句不返回_PHP-CI MySQL查询联接表,并且where语句不返回所...
  4. mybatis if test 判断参数_什么?你还在if判断参数?Spring Boot 注解进行参数校验真香...
  5. gitlab root
  6. JS中的Error对象
  7. python--过滤top命令--之--时间_系统CPU_进程CPU_内存
  8. 苹果Mac时间追踪工具推荐:Time Sink
  9. 地理信息系统(第二版)汤国安等编著第一章1.1-1.2节
  10. Android 基础知识之 VelocityTracker使用(提供手指速度计算,可用于笔迹优化哦)
  11. ROS学习(9)自定义移动机器人模型Gazebo仿真
  12. apache 启动失败错误排查
  13. 捕捉百合网的女同志和echarts展示
  14. 身份证实名认证API接口
  15. 数据从hana倒回Oracle的方法,SAP HANA SLT 将Oracle表 数据同步到HANA数据库
  16. 实现顺序串各种基本运算的算法
  17. iphone5信号无服务器,iPhone手机信号这么强,原因是开启了“它”,果粉:有救了...
  18. Cascade R-CNN: Delving into High Quality Object Detection(个人学习笔记)
  19. 4.基于Android 12 分析系统启动过程
  20. Struts2(2)_什么是 struts2

热门文章

  1. EasyUI:datagrid清空所有选择行
  2. ios调用restful接口_iPhone中调用RESTFUL Service
  3. ORB-SLAM3 一张图梳理rgbd_tum.cc主流程
  4. 【一天一个C++小知识】015:c++11线程创建的三种方法
  5. 关于C++条件编译的细节
  6. 图像增强处理之:同态滤波与Retinex算法(三)Retinex邻域算法:SSR,MSR,MSRCR
  7. 单次目标检测器之YOLO I
  8. JSON 解析之 GSON
  9. 软件测试行业的职业素养
  10. 使用BAPI批量修改采购信息记录的税率