中易网

怎样禁止ViewPager左右滑动

答案:2  悬赏:80  
解决时间 2021-04-28 03:17
  • 提问者网友:北故人
  • 2021-04-27 11:56
怎样禁止ViewPager左右滑动
最佳答案
  • 二级知识专家网友:高冷不撩人
  • 2021-04-27 12:10
ViewPager.setOnTouchListener(){
return true;
}
全部回答
  • 1楼网友:我们只是兮以城空
  • 2021-04-27 12:24
怎样禁止viewpager左右滑动呢?大致就是重写viewpager,覆盖viewpager的onintercepttouchevent(motionevent arg0)方法和ontouchevent(motionevent arg0)方法,这两个方法的返回值都是boolean类型的,只需要将返回值改为false,那么viewpager就不会消耗掉手指滑动的事件了,转而传递给上层view去处理或者该事件就直接终止了。下面是我的自定义viewpager public class noscrollviewpager extends viewpager { private boolean noscroll = false; public noscrollviewpager(context context, attributeset attrs) { super(context, attrs); // todo auto-generated constructor stub } public noscrollviewpager(context context) { super(context); } public void setnoscroll(boolean noscroll) { this.noscroll = noscroll; } @override public void scrollto(int x, int y) { super.scrollto(x, y); } @override public boolean ontouchevent(motionevent arg0) { if (noscroll) return false; else return super.ontouchevent(arg0); } @override public boolean onintercepttouchevent(motionevent arg0) { if (noscroll) return false; else return super.onintercepttouchevent(arg0); } @override public void setcurrentitem(int item, boolean smoothscroll) { super.setcurrentitem(item, smoothscroll); } @override public void setcurrentitem(int item) { super.setcurrentitem(item); } } 以上代码特别简单,大家可以直接拷贝使用,无需做任何修改。为了操作方便,我在这个自定义的viewpager里设置了一个boolean类型的控制变量,并且向外提供了控制viewpager是否禁止滑动的方法,这样就显得灵活一点了。以下是自定义viewpager在布局文件中的定义。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息