您的位置:首页 > 移动开发 > Android开发

Android设置ViewPager不能左右滑动

2016-07-24 23:51 671 查看
在viewpager对象绑定适配器之前,设置如下方法

viewpager .setOnTouchListener( new OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event)
{
return true;  //修改为true
}

});


上面的方法虽然简单,但确实可能出现可以慢慢滑动的情况,以下是更新,重写一个ViewPager,使用重写的ViewPager就没有问题了

/**
* Created by Suzi on 2016/11/14.
* 自定义ViewPage,可以设置ViewPager页面之间不能滑动
*/

public class MyViewPager extends ViewPager
{

/*
更改scrollble的值可设置是否可滑动,默认true为可滑动
*/
private boolean scrollble = true;

private int startX;
private int startY;

public MyViewPager(Context context)
{
super(context);
}

public MyViewPager(Context context, AttributeSet attrs)
{
super(context, attrs);
}

@Override
public boolean onTouchEvent(MotionEvent ev)
{
if (!scrollble)
{
return true;
}
return super.onTouchEvent(ev);
}

@Override
public boolean onInterceptTouchEvent(MotionEvent ev)
{

switch (ev.getAction())
{
case MotionEvent.ACTION_DOWN:
startX = (int) ev.getX();
startY = (int) ev.getY();
break;
case MotionEvent.ACTION_MOVE:

//                int dX = (int) (ev.getX() - startX);
int dY = (int) (ev.getY() - startX);
if (Math.abs(dY)>0)  // 说明上下方向滑动了
{
return false;
} else
{
return true;
}
case MotionEvent.ACTION_UP:
break;
}

return super.onInterceptTouchEvent(ev);
}

public boolean isScrollble()
{
return scrollble;
}

public void setScrollble(boolean scrollble)
{
this.scrollble = scrollble;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android viewpager