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才会去加载 查看原帖》》
更多文章:
boseqc30耳机怎么连接蓝牙(刚入手BOSE QC30 想连电脑 怎么连)
2024年2月25日 09:40
苹果笔记本软件下载网站(苹果笔记本电脑上 的付费软件如何免费下载)
2023年1月23日 19:45
玄冰400双风扇(玄冰400双风扇比单风扇好么另外玄冰400怎么样)
2024年11月15日 05:45
电脑包在哪里买(最近刚入了一个电脑,必要商城上有卖电脑包的吗)
2023年3月29日 22:30
oppo最便宜nfc手机(oppo有哪些型号支持nfc功能的手机)
2023年3月23日 01:30
小黄蜂摩托车250价格(本田cb250摩托车全新车大概多少钱网上有的要1~2w有的只要2000多到底能信吗请业内高人请教)
2024年6月1日 00:50
三星gearfit2pro怎么连接手机(三星手机怎么连接三星的智能手表gear fit)
2024年6月23日 00:44