Android DiffUtil更能控制滚动

Android DiffUtil更能控制滚动,android,android-recyclerview,Android,Android Recyclerview,目前,我正在使用DiffUtil.Result来计算两个列表之间的结果差异,但我发现它对自动滚动的控制能力很低。比方说,我希望在特定条件下插入新项目时,列表可以滚动,而不是在其他条件下 用例:假设我在屏幕上显示聊天中所有朋友的列表。列表按以下顺序排序:联机脱机。这里有两种情况: 以前脱机的用户(可能在列表末尾)现在联机。与该用户相关的数据已更改,新列表将他定位在列表的顶部。我想让列表滚动到那个位置 另一方面,如果用户在线(例如,在第二个位置),然后离线,我不希望列表滚动到底部(因为在线用户没有

目前,我正在使用DiffUtil.Result来计算两个列表之间的结果差异,但我发现它对自动滚动的控制能力很低。比方说,我希望在特定条件下插入新项目时,列表可以滚动,而不是在其他条件下

用例:假设我在屏幕上显示聊天中所有朋友的列表。列表按以下顺序排序:联机脱机。这里有两种情况:

  • 以前脱机的用户(可能在列表末尾)现在联机。与该用户相关的数据已更改,新列表将他定位在列表的顶部。我想让列表滚动到那个位置

  • 另一方面,如果用户在线(例如,在第二个位置),然后离线,我不希望列表滚动到底部(因为在线用户没有相关性)


那么,允许在“recyclerView”卷轴上使用这种粒度还有什么问题吗?

您是如何决定的?您找到解决方案了吗?