作者:洪泽湖沟鼠_203 | 来源:互联网 | 2024-09-26 18:35
如图:我们想要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里面写!