如何处理 viewpager 页面的自动滑动和手动滑动
即 viewpager 中有一组 10 个页面,每个页面在 3 秒后滑动,但问题是当用户滑动页面时,它会移回到我需要的序列页面。
1>如果用户连续滑动两个页面,则不应返回。
2>当用户滑动页面时,计时器应暂停,并且计时器应从屏幕按住页面时重新启动。代码如下
@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);
我最近遇到了同样的问题,并通过编写以下函数解决了。
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);
}
希望对你有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)