ViewPager禁止左右滚动

Android  代码片段  摘抄  2023年8月1日 am8:08发布1年前 (2023)更新 91es.com站长
52 0 0

前言

项目中需要用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);
    }
}

参考文章

  1. ViewPager屏蔽左右滑动和切换时的滚动动画

 历史上的今天

  1. 2024: Thread中断简单介绍(0条评论)
  2. 2022: Android GridView horizontalSpacing属性值无效(0条评论)
  3. 2021: 陈先发:前世(0条评论)
  4. 2019: 朱光潜:有趣的灵魂都有静气(0条评论)
版权声明 1、 本站名称: 91易搜
2、 本站网址: 91es.com3xcn.com
3、 本站内容: 部分来源于网络,仅供学习和参考,若侵权请留言
3、 本站申明: 个人流水账日记,内容并不保证有效

暂无评论

暂无评论...

随机推荐

Android在线源码查看

前言记录一下在线看源码的几个地方,方便自己查阅。本文摘抄的。正文aospxref网址:http://aospxref.com/优点:更新速度快缺点:历史版本较少androidxref网址:http://androidxref.com/优点:历史版本较多缺...

席慕容:抉择

假如我来世上一遭只为与你相聚一次只为了亿万光年里的那一刹那一刹那里所有的甜蜜与悲凄 那麽 就让一切该发生的都在瞬间出现吧我俯首感谢所有星球的相助让我与你相遇与你别离完成了上帝所作的一首诗然後  再缓缓地老去

村上春树:请认真生活

您是属于喜欢说话的人呢,还是不太爱说话?我呢,应该算不爱说话的。虽然视情况看对手,有时会变得口若悬河,不过平常却是闷葫芦一个。也害怕详尽地说明什么,尽量不做这类事情。哪怕话说得不透彻,招致周围的误解(这种事屡屡发生),也照样坦然自若:没办法,人生就是这么回事。不是自吹,这方面我倒是做得很高明。...

Vim复制和粘贴命令

前言简单记录一下Vim拷贝和粘贴命令正文dddeletedd是删除光标所在位置的整行内容,并复制到缓存区dd : 删除光标所在的整行内容[N]dd : 删除从光标所在的行开始,联系N行的内容yyYankyy是复制光标所在的整行内容,并复制到缓存区yy : 复制光标所在的整行内...

郑愁予 : 错误

我打江南走过那等在季节里的容颜如莲花的开落东风不来,三月的柳絮不飞 你底心如小小的寂寞的城恰若青石的街道向晚跫音不响,三月的春帷不揭 你底心是小小的窗扉紧掩我达达的马蹄是美丽的错误我不是归人,是个过客…… 

Android获取使用MediaBrowserService的app

前言简单记录一下获取Android中使用MediaBrowserService的的音乐信息,然后进行绑定,这样就可以控制相关应用,比如上下曲,播放暂停等。正文这里只是简单记录,部分代码片段。PackageManager packageManager = getPackageManager(...