在 Android RecyclerView 中区分手动和自动滚动

Differentiate between manual and auto scroll in Android RecyclerView

这可能是一个基本问题,但我有一种情况,我设置了 recyclerview 的自动滚动(循环遍历数据对象、视图持有者和应用滚动到位置的组合)。

我的疏忽是关于如何处理用户试图重新控制滚动条的情况?

问题:如何区分用户试图重新获得控制权(通过手动滚动)与我的循环试图滚动?

已经尝试过的解决方案:使用自定义布局管理器,覆盖 calculatespeedperpixel 并提供自定义值。现在,当用户尝试手动滚动时,如果滚动速度与我的自定义值不匹配,我们可以假设是用户滚动了。

这是一个骇人听闻的解决方法,并非总是万无一失

为 recyclerview 设置触摸侦听器,当它触发时您暂停滚动并在一段时间后自动触发。