我建立了一个自定义滑块。自动滑动图像。但是问题是。假设我有3张图片。因此它像第一张图像滑动到第二张图像滑动到第三张图像,然后再次回到第二张图像。但是我想从第一张图像到第二张图像再到第三张图像,然后再回到第一张图像。
recyclerViewHeaderSlider.setLayoutManager(new CustomLinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false));
headerSliderAdapter.setOnClick(this);
recyclerViewHeaderSlider.setAdapter(headerSliderAdapter);
final int speedScroll = 6000;
final Handler handler = new Handler();
final Runnable runnable = new Runnable() {
int count = 0;
boolean flag = true;
@Override
public void run() {
if(count < headerSliderAdapter.getItemCount()){
if(count==headerSliderAdapter.getItemCount()-1){
flag = false;
}else if(count == 0){
flag = true;
}
if(flag) count++;
else count--;
recyclerViewHeaderSlider.smoothScrollToPosition(count);
handler.postDelayed(this,speedScroll);
}
}
};
handler.postDelayed(runnable,speedScroll);
答案 0 :(得分:0)
如下更改逻辑。
final ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor();
schedular.scheduleWithFixedDelay(new Runnable() {
@Override
public void run() {
Message message = handler.obtainMessage();
handler.sendMessage(message);
}
}, 0, 6000, TimeUnit
.SECONDS);
}
final Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
if (count == headerSliderAdapter.getItemCount() - 1) {
count = 0;
} else {
count++;
}
recyclerView.smoothScrollToPosition(count);
}
};