andorid自定义ViewPager之——子ViewPager滑到边缘后直接滑动父ViewPager
最近的项目中,有一个需求要用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相关推荐
- android左右滑动fragment,Android基于ViewPager+Fragment实现左右滑屏效果的方法
本文实例讲述了Android基于ViewPager+Fragment实现左右滑屏效果的方法.分享给大家供大家参考,具体如下: 1.xml布局模板 android:id="@+id/local ...
- Android开发之可以在临界点左右滑动的ViewPager
老套路先上效果图: 可以在临界点滑动的ViewPager,上图效果是:两个ViewPager,一个垂直一个水平滑动的,这次主要讲解临界点左右滑动,实际上很简单,只需要自定义ViewPager在事件分发 ...
- ViewPager中呈现前一页和后一页的内容
目录 目录 前言 思路 关键函数 自定义PagerContainer 前言 今天需要实现如下图所示的布局效果: 第一反应是利用ViewDragHelper写一个自定义布局,然后实现拖拽效果.但是如果这 ...
- 可以动态控制左右滑动的ViewPager, 禁止ViewPager左右滑动
可以动态控制左右滑动的ViewPager 禁止ViewPager左右滑动 package com.geaosu.test.act;import android.content.Context; imp ...
- iOS swift5 UISlider 自定义UISlider 修改滑块和滑条的大小
文章目录 UISlider添加事件,点击事件,滑动事件 1.滑动事件:滑动过程中一直触发的事件 2.点击事件:滑动完成,放开手才触发的事件 自定义UISlider 修改滑块和滑条的大小 UISlide ...
- [转]MFC子线程更改图像数据后更新主窗口图像显示方法
程序思路是由外部的输入输出控制卡发出采集图像信号,之后相机采集图像得到图像数据指针,接收图像数据指针创建成图像最后显示到MFC对话框应用程序的Picture Control控件上,同时,为了标定相机位 ...
- VMware找不到父磁盘 父虚拟磁盘在子虚拟磁盘创建之后被修改过。父虚拟磁盘的内容 ID 与子虚拟磁盘中对应的父内容 ID 不匹配
在移动VMDK磁盘或者更改操作系统后,往往会出现"VMware找不到父磁盘 父虚拟磁盘在子虚拟磁盘创建之后被修改过.父虚拟磁盘的内容 ID 与子虚拟磁盘中对应的父内容 ID 不匹配" ...
- 042——VUE中组件之子组件使用$on与$emit事件触发父组件实现购物车功能
<!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8" ...
- 记录下帮助一位网友解决的关于android子控件的onTouch或onClick和父OnTouch 冲突的问题。
记录下帮助一位网友解决的关于android子控件的onTouch或onClick和父OnTouch 冲突的问题. 参考文章: (1)记录下帮助一位网友解决的关于android子控件的onTouch或o ...
- 【疑点】当子元素全部浮动时,怎么解决父元素塌陷的问题?
[疑点]当子元素全部浮动时,怎么解决父元素塌陷的问题? 参考文章: (1)[疑点]当子元素全部浮动时,怎么解决父元素塌陷的问题? (2)https://www.cnblogs.com/roashley ...
最新文章
- linux 裸设备 逻辑卷,Linux通过逻辑卷使用裸设备
- SEL|世界土壤日-土壤生态学Nico Eisenhauer 教授讲座
- C# 语句中的各种单例模式代码
- 学习嵌入式系统需要具备的条件、方法及步骤
- The next Industry Standard in IT Monitoring, a python implementation Nagios like tool --- Shinken
- 初探AngularJS6.x---目录结构说明
- C++中STL和容器、迭代器、算法之间的关系
- python调用远程的python文件_python 实现调用远程接口
- SQL Server创建视图
- 2015年主流的页面导航菜单设计
- java实现阴历、阳历互相转换
- 网络歌曲《丁香花》背后的真实故事
- pygame战棋游戏制作之战棋回合切换(五)
- python 标签字体大小,Python:如何增加/减少x和y刻度标签的字体大小?
- 足球和oracle列(4):巴西惨败于德国,认为,差额RAC拓扑控制!
- XSS Challenges/刷题/Stage #3
- 小学计算机集体备课活动记录,小学科学集体备课活动记录
- C# 计算散点数据 离散值
- L1频段卫星导航射频前端低噪声放大器芯片MS2659完美替代MAX2659
- 智慧农业云平台APP[中易云智慧农业物联网]