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);
    }
    }
  • 相关阅读:
    fork和Vfork的区别
    exer4.13.c(undone)
    Exer4.6.c(undone)
    好习惯
    c语言中的register修饰符
    请教如何在页面之间传递dataSet?不用session
    ultraEdite编辑shell或perl程序时注意
    PowerBuilder程序中取数据库中值,值异常(正数变成负数或异常)
    pb程序的编译发布
    关于sql server2000 的1068 与 1069 问题
  • 原文地址:https://www.cnblogs.com/agilezhu/p/5881176.html
Copyright © 2011-2022 走看看