最近的项目中,有一个需求要用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. linux 裸设备 逻辑卷,Linux通过逻辑卷使用裸设备
  2. SEL|世界土壤日-土壤生态学Nico Eisenhauer 教授讲座
  3. C# 语句中的各种单例模式代码
  4. 学习嵌入式系统需要具备的条件、方法及步骤
  5. The next Industry Standard in IT Monitoring, a python implementation Nagios like tool --- Shinken
  6. 初探AngularJS6.x---目录结构说明
  7. C++中STL和容器、迭代器、算法之间的关系
  8. python调用远程的python文件_python 实现调用远程接口
  9. SQL Server创建视图
  10. 2015年主流的页面导航菜单设计
  11. java实现阴历、阳历互相转换
  12. 网络歌曲《丁香花》背后的真实故事
  13. pygame战棋游戏制作之战棋回合切换(五)
  14. python 标签字体大小,Python:如何增加/减少x和y刻度标签的字体大小?
  15. 足球和oracle列(4):巴西惨败于德国,认为,差额RAC拓扑控制!
  16. XSS Challenges/刷题/Stage #3
  17. 小学计算机集体备课活动记录,小学科学集体备课活动记录
  18. C# 计算散点数据 离散值
  19. L1频段卫星导航射频前端低噪声放大器芯片MS2659完美替代MAX2659
  20. 智慧农业云平台APP[中易云智慧农业物联网]

热门文章

  1. SQL:MongoDB简述
  2. JavaScript:数组、函数和对象
  3. android 批量扫描,Android:连续扫描所有AP(接入点)
  4. 深度学习_pytorch_深度学习中的tensor介绍及常用操作
  5. 斯坦福大学深度学习公开课cs231n学习笔记(7)神经网络防止数据过拟合:损失函数和正则化
  6. 3D视觉(二)四元数简要说明
  7. xUtils3 图片加载模块
  8. WebLogic 11g重置用户密码
  9. slz-servlet的引入
  10. word2007里插入分节符