如图:

我们想要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里面写!

更多相关文章

  1. Android(安卓)SeekBar控件详解
  2. Android(安卓)StaggeredGrid 加下拉刷新功能 PullToRefresh
  3. Android(安卓)轮播图---ViewFlipper
  4. android在学习——Menu背景图片,背景色的设置
  5. android 游戏 实战打飞机游戏 菜单页面(1)
  6. [Android(安卓)Pro] Scroller使用分析
  7. Android(安卓)View体系(三)--实现 View 的滑动七种方式
  8. Android(安卓)Touch事件的传递机制
  9. Android(安卓)编程下 Touch 事件的分发和消费机制(一)

随机推荐

  1. 在发出xml Ajax请求时获取错误412
  2. jQuery向父级元素最前面添加元素—prepen
  3. 动态更改设置值?
  4. jquery lazyload延迟加载技术的实现原理
  5. 复选框上的反应仅适用一次。哪里不对?
  6. jQuery UI对话框调整大小关闭按钮
  7. 如何在jQuery中选择最后一个子元素?
  8. 在引导程序弹出窗口中使用交互式元素
  9. jQuery去掉导航分割线的最后一条竖线
  10. jQuery $ajax 传中文数据到action乱码解