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

主要是发延时消息,每四秒更新一次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);
        }
    }

猜你喜欢

转载自blog.csdn.net/weixin_42765222/article/details/107140645