ViewPager自动轮播,手指按住停止轮播

前面写了ViewPager添加指示器,无限轮播,自动轮播。但是自动轮播有一个问题就是手指按住后要停止轮播才行。
添加指示器,无限轮播,自动轮播请参考另外两篇文章:
《viewpager自添加指示器,无限轮播》
《ViewPager的自动轮播》
下面就记录一下,手指按住viewpager后停止自动轮播。
其实这个比较简单,就是对viewpager做一个触摸监听即可。然后判断下up和down事件

//通过监听onTouch事件,设置一个标签isLoop;手指按下时isLoop = false,手指抬起后isLoop = true;
        mViewPager.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {
                switch (motionEvent.getAction()) {
                    case MotionEvent.ACTION_DOWN:
                        Toast.makeText(MainActivity.this, "Down", Toast.LENGTH_SHORT).show();
                        isLoop = false;
                        break;
                    case MotionEvent.ACTION_UP:
                        Toast.makeText(MainActivity.this, "Up", Toast.LENGTH_SHORT).show();
                        isLoop = true;
                        break;
                }
                return false;
            }
        });

设置是否自动轮播的关键

//根据isLoop设置是否轮播
  mTimer.schedule(new TimerTask() {
            @Override
            public void run() {
                Message message = new Message();
                message.what = UPDATE_VIEWPAGER;
                if(isLoop){ //如果isLoop = true 才进行轮播
                handler.sendMessage(message);
                }
            }
        }, 1000, 1000);//这里定义了轮播图切换的间隔时间
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值