Android ViewPager自动滑动 [英] Android viewpager automatic sliding
问题描述
如何处理Viewpager页面的自动滑动以及手动滑动即在viewpager中有一组10页,每张幻灯片在3秒后滑动,但问题是当用户滑动页面时,它会移回到序列页面,这是我需要的.1>如果用户连续滑动两个页面,则不应返回.2>在用户滑动页面时,计时器应暂停,并且计时器应从按住该页面的屏幕重新启动.代码是
How to handle automatic swiping of viewpager pages together with manual swipe i.e a set of 10 pages are there in viewpager each slides after 3 seconds but problem is when user swipes the page it moves back to sequence page what i need is following. 1>if user swipes two consecutive pages than it should not go back. 2>timer should paused when user is swiping the pages and timer should restart from screen holding the page. the code is as
@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);
推荐答案
我最近遇到了同样的问题,并通过编写下面的函数得到了解决.
I recently faced the same problem, and got solved by writing below function.
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);
}
希望这会对您有所帮助.
Hope this will help you.
这篇关于Android ViewPager自动滑动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!