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页滚动到顶部时自动吸附