zoukankan      html  css  js  c++  java
  • 自定义ViewPager,避免左右滑动时与水平滑动控件冲突

    import android.content.Context;
    import android.support.v4.view.ViewPager;
    import android.util.AttributeSet;
    import android.view.MotionEvent;
    import android.view.View;

    public class CanScrollViewPager extends ViewPager {
    private boolean mNoScroll = false;//标记不允许左右滚动

    /**
    * @param context
    * @param attrs
    */
    public CanScrollViewPager(Context context, AttributeSet attrs) {
    super(context, attrs);
    }

    /**
    * @param context
    */
    public CanScrollViewPager(Context context) {
    super(context);
    }


    @Override
    protected boolean canScroll(View v, boolean checkV, int dx, int x, int y) {
    if (v != this && (v instanceof PageWebView || v instanceof HorizontalGalleryView)) {
    requestDisallowInterceptTouchEvent(true);
    return true;
    }
    return super.canScroll(v, checkV, dx, x, y);
    }

    @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
    switch (ev.getAction()) {
    case MotionEvent.ACTION_UP:
    case MotionEvent.ACTION_CANCEL:
    break;
    default:
    break;
    }
    return super.dispatchTouchEvent(ev);
    }

    //设置不允许左右滚动
    public void setNoScroll(boolean noScroll) {
    this.mNoScroll = noScroll;
    }

    @Override
    public boolean onTouchEvent(MotionEvent arg0) {
    if (mNoScroll) {
    return false;
    }
    return super.onTouchEvent(arg0);
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent arg0) {
    if (mNoScroll) {
    return false;
    }

    return super.onInterceptTouchEvent(arg0);
    }
    }
  • 相关阅读:
    Volatile变量学习
    又买了书
    java基础之类加载过程
    利用注解和POI导入Excel
    java异常简述
    Dubbo问题集
    day30 操作系统介绍 进程的创建
    day29 socketsever ftp功能简单讲解
    day28 黏包及黏包解决方案
    day27 网络通信协议 tcp/udp区别
  • 原文地址:https://www.cnblogs.com/agilezhu/p/5881176.html
Copyright © 2011-2022 走看看