注意先引用RecyclerView
自定义RecyclerView:
public class AutoScrollRecyclerView extends RecyclerView {
private Disposable mAutoTask;
public AutoScrollRecyclerView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public void start() {
if (mAutoTask != null && !mAutoTask.isDisposed()) {
mAutoTask.dispose();
}
mAutoTask = Observable.interval(1000, 100, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<Long>() {
@Override
public void accept(Long aLong) throws Exception {
smoothScrollBy(0, 5);
}
});
}
public void stop() {
if (mAutoTask != null && !mAutoTask.isDisposed()) {
mAutoTask.dispose();
mAutoTask = null;
}
}
//禁止手动滑动
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
return true;
}
布局文件中引用
<com.yjf.lottery.widget.AutoScrollRecyclerView
android:id="@+id/rv_auto_home_lottery_win_single"
android:layout_width="match_parent"
android:layout_height="@dimen/dimen_200"
android:layout_margin="@dimen/dimen_10"
android:background="@color/white" />
代码中使用
@BindView(R.id.rv_auto_home_lottery_win_single)
AutoScrollRecyclerView rv_auto_home_lottery_win_single;
rv_auto_home_lottery_win_single.setLayoutManager(new LinearLayoutManager(getActivity()));
rv_auto_home_lottery_win_single.addItemDecoration(new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL));
rv_auto_home_lottery_win_single.setAdapter(homeLotteryWinSingleAdapter);
rv_auto_home_lottery_win_single.start();
注意停止
@Override
public void onDestroy() {
super.onDestroy();
if (rv_auto_home_lottery_win_single != null) {
rv_auto_home_lottery_win_single.stop();
}
}