viewpager禁止左右滑动(怎么禁止焦点在viewpager边缘再按键左右滑动)
本文目录
- 怎么禁止焦点在viewpager边缘再按键左右滑动
- 如何实现ViewPager不要滑动切换,只要点击切换
- 求教,怎样禁止ViewPager向右滑动
- ViewPager如何禁止滑动
- Webview&Viewpager滑动冲突解决方案
- ViewPager1嵌入ViewPager2,两者重叠,怎么禁止ViewPager1的滑动功能
怎么禁止焦点在viewpager边缘再按键左右滑动
怎样禁止ViewPager左右滑动呢?大致就是重写ViewPager,覆盖ViewPager的onInterceptTouchEvent(MotionEvent arg0)方法和onTouchEvent(MotionEvent arg0)方法,这两个方法的返回值都是boolean类型的,只需要将返回值改为false,那么ViewPager就不会消耗掉手指滑动的事件了,转而传递给上层View去处理或者该事件就直接终止了。下面是我的自定义ViewPagerpublic 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) { /* return false;//super.onTouchEvent(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在布局文件中的定义。
如何实现ViewPager不要滑动切换,只要点击切换
重写下 viewpager的 ontouchevent 方法,然后使用自己这个viewpager,即可禁止手势滑动,只要点击滑动,如下,public class CustomViewPager extends ViewPager { private boolean isCanScroll = false; public CustomViewPager(Context context) { super(context); } public CustomViewPager(Context context, AttributeSet attrs) { super(context, attrs); } public void setScanScroll(boolean isCanScroll){ this.isCanScroll = isCanScroll; } @Override public void scrollTo(int x, int y){ // if (isCanScroll){ super.scrollTo(x, y); // } } @Overridepublic void setCurrentItem(int item) {// TODO Auto-generated method stubsuper.setCurrentItem(item);}@Overridepublic boolean onTouchEvent(MotionEvent arg0) { // TODO Auto-generated method stub if (isCanScroll) { return super.onTouchEvent(arg0); } else { return false; }}@Overridepublic boolean onInterceptTouchEvent(MotionEvent arg0) { // TODO Auto-generated method stub if (isCanScroll) { return super.onInterceptTouchEvent(arg0); } else { return false; }}}
求教,怎样禁止ViewPager向右滑动
你可以把viewpager源码拿到你的项目中,修改viewpager的源码来实现。我之前另一种方式实现了进制向右滑---外层包了一个自定义view,通过onInterceptTouchEvent拦截事件,然后判断是否是向右滑动,返回true或false。这个要重写viewpager,然后重写这个方法public boolean dispatchTouchEvent(MotionEvent ev) {// TODO Auto-generated method stubswitch (ev.getAction()) {case MotionEvent.ACTION_DOWN:x = ev.getX();break;case MotionEvent.ACTION_MOVE:mLastMotionX = ev.getX() - x;if(mLastMotionX《0){return false;}break;}return super.dispatchTouchEvent(ev);}你可以试一下,满意请采纳。
ViewPager如何禁止滑动
VIewPager移动全部都调用了scrollTo方法,这个是View的方法,那么我们只需要重写这个方法就可以禁止ViewPager滑动
Java代码
public class CustomViewPager extends ViewPager { private boolean isCanScroll = true; public CustomViewPager(Context context) { super(context); } public CustomViewPager(Context context, AttributeSet attrs) { super(context, attrs); } public void setScanScroll(boolean isCanScroll){ this.isCanScroll = isCanScroll; } @Override public void scrollTo(int x, int y){ if (isCanScroll){ super.scrollTo(x, y); } }
Webview&Viewpager滑动冲突解决方案
感谢这些作者的分享
ViewPager1嵌入ViewPager2,两者重叠,怎么禁止ViewPager1的滑动功能
你可以给ViewPager里面放View,比如说一个空的FrameLayout,当你划过去后,给这个FrameLayout绑定Fragment,这时候Fragment才会去加载 查看原帖》》
更多文章:
ios14越狱必备实用插件(苹果iOS越狱新消息来了!苹果iOS14.7.1AppSync Unified已出)
2023年9月4日 21:40
腾讯手机管家旧版本下载(如何把腾讯手机管家回复到以前的版本)
2023年6月28日 00:30
airdots青春版(红米airdots3青春版电仓查看电量)
2024年6月24日 12:41
tcl股票股票行情(TCL市值那么高,但为什么它的股票会这么低)
2023年6月14日 16:20
小米10s电池容量多少毫安(小米10S可以用55 W的充电器充电吗)
2024年10月20日 04:00