美文网首页
不可滑动的ViewPager

不可滑动的ViewPager

作者: huomenghui | 来源:发表于2017-12-28 20:59 被阅读14次

import android.content.Context;

import android.support.v4.view.ViewPager;

import android.util.AttributeSet;

import android.view.MotionEvent;

/**

* Created by apple on 17/4/20.

*/

public class CanotSlidingViewpagerextends ViewPager {

/**

* 上一次x坐标

*/

    private float beforeX;

    public CanotSlidingViewpager(Context context, AttributeSet attrs) {

super(context, attrs);

        // TODO Auto-generated constructor stub

    }

public CanotSlidingViewpager(Context context) {

super(context);

    }

private boolean isCanScroll =true;

//-----禁止左滑-------左滑:上一次坐标 > 当前坐标

    @Override

    public boolean dispatchTouchEvent(MotionEvent ev) {

if(isCanScroll){

return super.dispatchTouchEvent(ev);

        }else {

switch (ev.getAction()) {

case MotionEvent.ACTION_DOWN://按下如果‘仅’作为‘上次坐标’,不妥,因为可能存在左滑,motionValue大于0的情况(来回滑,只要停止坐标在按下坐标的右边,左滑仍然能滑过去)

           beforeX = ev.getX();

break;

                case MotionEvent.ACTION_MOVE:

float motionValue = ev.getX() -beforeX;

                    if (motionValue >0) {//禁止左滑

                        return true;

                    }

beforeX = ev.getX();//手指移动时,再把当前的坐标作为下一次的‘上次坐标’,解决上述问题

                    break;

                default:

break;

            }

return super.dispatchTouchEvent(ev);

        }

}

public boolean isScrollble() {

return isCanScroll;

    }

/**

* 设置 是否可以滑动

    * @param isCanScroll

    */

    public void setScrollble(boolean isCanScroll) {

this.isCanScroll = isCanScroll;

    }

相关文章

网友评论

      本文标题:不可滑动的ViewPager

      本文链接:https://www.haomeiwen.com/subject/tdqbgxtx.html