热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

AndroidViewPager事件滑动监听修改

如图:我们想要viewpager左右滑动切换,但是在viewpager的边缘滑动则划开菜单,这就需要对viewpager进行一下事件监听的修改写一个类,继承Viewpager,为了兼容

如图:

这里写图片描述

我们想要viewpager左右滑动切换,但是在viewpager的边缘滑动则划开菜单,这就需要对viewpager进行一下事件监听的修改

写一个类,继承Viewpager,为了兼容性,Viewpager是V4包里的

MyViewPager.java代码如下:

public class MyViewPager extends ViewPager {

private int downX = 0;

public MyViewPager(Context context) {
this(context,null);
}

public MyViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {

switch (ev.getAction()) {

case MotionEvent.ACTION_DOWN:

downX = (int)ev.getX();

//注意!这里必须有,否则快速滑动会失灵
getParent().requestDisallowInterceptTouchEvent(true);

break;

case MotionEvent.ACTION_MOVE:

int moveX = (int) ev.getX();

//在这里写事件拦截的条件,
if (downX <20) {
if (moveX > downX) {
//请求不中断事件
getParent().requestDisallowInterceptTouchEvent(false);
}else{
//请求中断事件
getParent().requestDisallowInterceptTouchEvent(true);
}
}else{
getParent().requestDisallowInterceptTouchEvent(true);
}

break;
}

return super.dispatchTouchEvent(ev);
}

}

好了,这个就是边缘滑动则打开菜单,不在边缘滑动则使用viewpager自身的滑动

如果想要viewpager滑动到第一页,再次往左滑后打开菜单也是在ACTION_MOVE里面写!


推荐阅读
author-avatar
洪泽湖沟鼠_203
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有