gpt4 book ai didi

android - 使用计时器任务控制 View 寻呼机幻灯片

转载 作者:行者123 更新时间:2023-11-29 16:31:23 26 4
gpt4 key购买 nike

我正在尝试通过使用 TimerTask 类自动滑动我的 ViewPager,似乎我没有适当的延迟和周期,它滑动得如此之快。我尝试了所有可能的 delay 和 period 参数组合,但没有任何运气,仍然如此烦人的快速滑动。下面是代码:

class SliderTimer extends TimerTask {
@Override
public void run() {
HomeActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
if (viewPager.getCurrentItem() < listSlides.size() - 1) {
viewPager.setCurrentItem(viewPager.getCurrentItem() + 1);
} else {
viewPager.setCurrentItem(0);
}
}
});
}
}

和实现:

Timer timer = new Timer();
timer.scheduleAtFixedRate(new HomeActivity.SliderTimer(), 10000, 10000);

请指导我,最好的办法是什么。

最佳答案

如果 ViewPager 也可以手动滑动,我认为在这种情况下使用 HandlerTimerTask 更好。首先在全局创建一个HandlerRunnable

private Handler handler=new Handler();
private Runnable runnable=new Runnable() {
@Override
public void run() {
if(pagerSlider.getCurrentItem()==data.size()-1){
pagerSlider.setCurrentItem(0,false);
}else{
pagerSlider.setCurrentItem(pagerSlider.getCurrentItem()+1);
}
}
};

onPageChange 中发布 runnable。

 pagerSlider.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener(){
@Override
public void onPageSelected(int position) {
super.onPageSelected(position);
handler.removeCallbacks(runnable);
handler.postDelayed(runnable,2000);
}
});

您需要第一次发布 Rest 听众会做。根据您的需要更改延迟:-

handler.postDelayed(runnable,2000);

我刚刚意识到您可能会问滚动速度。为此,您需要使用 Customize Scroller。 Go to This thread .

关于android - 使用计时器任务控制 View 寻呼机幻灯片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54995711/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com