前言
项目中需要用ViewPager+Fragment组合使用,比如很见的就是图片暂时。每个客户需求不一样,有些需要左右滑动,有序不需要,因此需要禁止左右滑动切换界面。
本文代码是摘的,也验证OK,感谢分享。
正文
直接上代码,要介绍的可以看摘抄的文章。
public class NoScrollViewPager extends ViewPager { //默认禁止左右滚动和滚动动画 private boolean mCanScroll = false; private boolean mHasScrollAnim = false; public NoScrollViewPager(Context context) { super(context); } public NoScrollViewPager(Context context, AttributeSet attrs) { super(context, attrs); } /** * 设置其是否能滑动 * * @param canScroll false 禁止滑动, true 可以滑动 */ public void setCanScroll(boolean canScroll) { mCanScroll = canScroll; } /** * 设置是否去除滑动效果 * * @param hasScrollAnim false 去除滚动效果, true 不去除 */ public void setHasScrollAnim(boolean hasScrollAnim) { mHasScrollAnim = hasScrollAnim; } @Override public boolean onInterceptTouchEvent(MotionEvent ev) { return mCanScroll && super.onInterceptTouchEvent(ev); } @SuppressLint("ClickableViewAccessibility") @Override public boolean onTouchEvent(MotionEvent ev) { return mCanScroll && super.onTouchEvent(ev); } @Override public void setCurrentItem(int item, boolean smoothScroll) { super.setCurrentItem(item, smoothScroll); } /** * 设置其是否去求切换时的滚动动画 * mHasScrollAnim为false时,会去除滚动效果 */ @Override public void setCurrentItem(int item) { super.setCurrentItem(item, mHasScrollAnim); } }
参考文章
《
© 版权声明