自定义自动滑块?

时间:2019-08-30 11:13:49

标签: java android

我建立了一个自定义滑块。自动滑动图像。但是问题是。假设我有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);

1 个答案:

答案 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);
        }
    };