如何使用手动滑动一起处理viewpager页面的自动滑动 在viewpager中有一组10页,每次在3秒后滑动,但问题是当用户滑动页面时,它会移回到序列页面,我需要跟随。 1>如果用户滑动两个连续页面而不是它不应该返回。 当用户正在滑动页面时,计时器应暂停,并且计时器应从保持页面的屏幕重新开始。代码是
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.ten);
timer = new Timer();
viewPager.setAdapter(adapter);
viewPager.setCurrentItem(0);
// Timer for auto sliding
timer.schedule(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
if (count <= alQuestion.size()) {
viewPager.setCurrentItem(count, true);
count++;
} else {
viewPager.setCurrentItem(count);
}
}
});
}
}, 500, 3000);
答案 0 :(得分:1)
我最近遇到了同样的问题,并通过编写以下功能解决了问题。
public void autoSlider(final ViewPager viewPager) {
rr = new Runnable() {
public void run() {
int pos = viewPager.getCurrentItem();
if(pos > i && pos != slidingImages.length - 1){
i = pos;
i++;
}
else if(pos < (i-1)){
i = pos;
i++;
}
viewPager.setCurrentItem(i, true);
i++;
if (i >= slidingImages.length)
i = 0;
autoSlider(viewPager);
}};
handler.postDelayed(rr, 3000);
}
希望这会对你有所帮助。
答案 1 :(得分:0)
create TimerTask class and schedule it in Timer class
private class SliderTimer extends TimerTask {
@Override
public void run() {
SliderActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
if (viewPager.getCurrentItem() < color.size() - 1) {
viewPager.setCurrentItem(viewPager.getCurrentItem() + 1);
} else {
viewPager.setCurrentItem(0);
}
}
});
}
}
Timer timer = new Timer();
timer.scheduleAtFixedRate(new SliderTimer(), 4000, 6000)
Kindly follow this link for step bye step guideline https://medium.com/@shaktisinh/auto-slider-with-indicator-in-android-a28153d42125