怎样禁止ViewPager左右滑动
答案:2 悬赏:80
解决时间 2021-04-28 03:17
- 提问者网友:北故人
- 2021-04-27 11:56
怎样禁止ViewPager左右滑动
最佳答案
- 二级知识专家网友:高冷不撩人
- 2021-04-27 12:10
ViewPager.setOnTouchListener(){
return true;
}
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在布局文件中的定义。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息