Android ViewPager 实现自动滚动效果

Posted cao-1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android ViewPager 实现自动滚动效果相关的知识,希望对你有一定的参考价值。

Android 中使用ViewPager 并实现自动滚动效果。

学习自:自己研究


OverView

我们在很多软件中都见过一下的效果,他的效果就是在在 APP的顶部会个自动滚动的View在滑动,那么我们看一下如何使用他吧。


ViewPager的自动滚动效果

在 2019-12-27 日 我发过一篇 android 中如何使用ViewPager的文章,如果你还不会ViewPager的基础使用,那么我觉得你可以去看一下.链接

好了不多废话,我们看一下如何去实现ViewPager的自动滚动的效果。
这边我是用到了:
1.Timer
2.TimerTask
3.Handler
接着让我们先看一下源代码吧:

void GetTheViewPagerRoll() {
    AllCount = viewList.size();
    Timer timer = new Timer();
    TimerTask timerTask = new TimerTask() {
        @Override
        public void run() {
            Log.d("NowCountAll=", String.valueOf(AllCount));
            if (CountNow == AllCount - 1) {
                isMax = true;
            }
            if (CountNow == 0) {
                isMax = false;
            }
            if (isMax) {
                hander.sendEmptyMessage(2);
                CountNow--;
            } else {
                hander.sendEmptyMessage(1);
                CountNow++;
            }
        }
    };
    timer.schedule(timerTask, 1000, 1000);
}
Handler hander = new Handler() {
    @Override
    public void handleMessage(@NonNull Message msg) {
        super.handleMessage(msg);
        switch (msg.what) {
            case 1: {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        viewPager.setCurrentItem(CountNow);
                        Log.d("NowCount1=", String.valueOf(CountNow));
                    }
                });
            }
            break;
            case 2: {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        viewPager.setCurrentItem(CountNow);
                        Log.d("NowCount2=", String.valueOf(CountNow));
                    }
                });
            }
            break;
        }
    }
};

这就是我们的全部代码了。

源码分析

看完了我们的源代码,接着就让我们是来分析一波。!
其实他十分的简单,我们通过计时器的功能,每隔几秒就回去进行当前的的item的索引的判断,然后根据你需要的效果去写判断添加,这边我的判断条件是,达到最大在返回。
这就是我们的全部代码了。十分的简单。

看一下运行效果

技术图片

以上是关于Android ViewPager 实现自动滚动效果的主要内容,如果未能解决你的问题,请参考以下文章

Android 嵌套滚动NestedScrollView+TabLayout+ViewPager+Fragment+RecyclerView 实现京东美团首页效果Tab页滚动到顶部时自动吸附

Android 嵌套滚动NestedScrollView+TabLayout+ViewPager+Fragment+RecyclerView 实现京东美团首页效果Tab页滚动到顶部时自动吸附

ViewPager自动滚动

Android使用ViewPager实现轮播图(自动和手动)

Android ViewPager实现多个图片水平滚动

使用Android ViewPager2在回收器视图中滚动到底部时自动更改选项卡项