RecyclerView列表停止滚动时,设置定时任务
小而精的学习
mListView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { super.onScrollStateChanged(recyclerView, newState); if (newState == RecyclerView.SCROLL_STATE_IDLE) { restartDismissTimer(HiSingPlayConstants.HI_SING_PANEL_DISMISS_DELAY); } } });
public void restartDismissTimer(long dismissSecondsDelay) { unsubscribeDismiss(); mDisposable = Observable.timer(dismissSecondsDelay, TimeUnit.SECONDS) .observeOn(AndroidSchedulers.mainThread()).subscribe(new Consumer<Long>() { @Override public void accept(Long aLong) throws Exception { dismiss(); } }); }
解释:
当 `RecyclerView` 停止滚动时,启动一个延迟隐藏面板的定时器。
具体逻辑如下:
1. `addOnScrollListener` 监听滚动状态;
2. 当滚动停止SCROLL_STATE_IDLE时,调用restartDismissTimer设置定时任务;
3. 定时任务会在指定时间后执行 dismiss(),隐藏当前面板。

浙公网安备 33010602011771号