public class MyHandler extends Handler implements Runnable { private ViewPager mViewpager; public MyHandler(ViewPager mViewpager){ this.mViewpager=mViewpager; } @Override public void run() { mViewpager.setCurrentItem(mViewpager.getCurrentItem()+1); //每过3秒钟切换一次,递归 postDelayed(this,3000); } // 开启自动轮播 public void startAuto() { //防止开启两次task removeCallbacks(this); postDelayed(this,3000); } // 停止自动轮播 public void stopAuto() { removeCallbacks(this); }}
//在activity 里面初始化对象
private void autoPager() { if (mHandler==null) { mHandler = new MyHandler(vp); } mHandler.startAuto(); }vp.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent motionEvent) { switch (motionEvent.getAction()) { case MotionEvent.ACTION_DOWN: // 当手指触摸viewpager时停止自动轮播 mHandler.stopAuto(); break; case MotionEvent.ACTION_UP: // 当手指离开viewpager时开始自动轮播 mHandler.startAuto(); break; } return false; } });
简单实现viewpager 自动轮播,触摸停止轮播,离开继续轮播
最新推荐文章于 2021-03-11 15:00:31 发布