Android(安卓)ViewPager事件滑动监听修改
16lz
2021-01-26
如图:
我们想要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里面写!
更多相关文章
- Android(安卓)SeekBar控件详解
- Android(安卓)StaggeredGrid 加下拉刷新功能 PullToRefresh
- Android(安卓)轮播图---ViewFlipper
- android在学习——Menu背景图片,背景色的设置
- android 游戏 实战打飞机游戏 菜单页面(1)
- [Android(安卓)Pro] Scroller使用分析
- Android(安卓)View体系(三)--实现 View 的滑动七种方式
- Android(安卓)Touch事件的传递机制
- Android(安卓)编程下 Touch 事件的分发和消费机制(一)