优雅的实现 viewpager的无限轮播图
程序员文章站
2022-03-08 16:02:42
主要是发延时消息,每四秒更新一次viewpager的CurrentItem实际效果预览: //发消息 每隔四秒要切换一次viewpager页面 if (internalHandler == null) { internalHandler = new InternalHandler(); } //是把消息队列所有的消息和回调移除 internalHandler.removeCallbacksAndMe...
主要是发延时消息,每四秒更新一次viewpager的CurrentItem
实际效果预览:
//发消息 每隔四秒要切换一次viewpager页面
if (internalHandler == null) {
internalHandler = new InternalHandler();
}
//是把消息队列所有的消息和回调移除
internalHandler.removeCallbacksAndMessages(null);
//runnableb不是线程,只是接口
internalHandler.postDelayed(new MyRunnable(),4000);
class InternalHandler extends Handler{
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what==0){
//切换viewpager的下一个页面
int item = (viewpager.getCurrentItem()+1)%topnews.size();
viewpager.setCurrentItem(item);
//嵌套消息,无限循环
internalHandler.postDelayed(new MyRunnable(),4000);
}
}
}
class MyRunnable implements Runnable{
@Override
public void run() {
internalHandler.sendEmptyMessage(0);
}
}
本文地址:https://blog.csdn.net/weixin_42765222/article/details/107140645