欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

优雅的实现 viewpager的无限轮播图

程序员文章站 2022-06-21 19:15:47
主要是发延时消息,每四秒更新一次viewpager的CurrentItem实际效果预览: //发消息 每隔四秒要切换一次viewpager页面 if (internalHandler == null) { internalHandler = new InternalHandler(); } //是把消息队列所有的消息和回调移除 internalHandler.removeCallbacksAndMe...

主要是发延时消息,每四秒更新一次viewpager的CurrentItem

实际效果预览:

优雅的实现 viewpager的无限轮播图

        //发消息 每隔四秒要切换一次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