前言
项目中需要用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); } }
参考文章
-
《
历史上的今天
- 2022: 《Android GridView horizontalSpacing属性值无效(0条评论)》
- 2021: 《陈先发:前世(0条评论)》
- 2019: 《朱光潜:有趣的灵魂都有静气(0条评论)》
相关文章
暂无评论...