前面写了ViewPager添加指示器,无限轮播,自动轮播。但是自动轮播有一个问题就是手指按住后要停止轮播才行。
添加指示器,无限轮播,自动轮播请参考另外两篇文章:
《viewpager自添加指示器,无限轮播》
《ViewPager的自动轮播》
下面就记录一下,手指按住viewpager后停止自动轮播。
其实这个比较简单,就是对viewpager做一个触摸监听即可。然后判断下up和down事件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
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; } });
|
设置是否自动轮播的关键
1 2 3 4 5 6 7 8 9 10 11 12
|
mTimer.schedule(new TimerTask() { @Override public void run() { Message message = new Message(); message.what = UPDATE_VIEWPAGER; if(isLoop){ handler.sendMessage(message); } } }, 1000, 1000);
|