目前,我使用DiffUtil.Result来计算两个列表之间的结果差异,但我发现它对自动滚动的控制能力很低。让我们说,我希望允许列表在某些条件下插入新项目时滚动,而不是与其他条件一起滚动。
使用案例:想象一下,我在屏幕上显示聊天中所有朋友的列表。该列表按以下顺序排序:在线 - 离线。这里有两种情况:
之前处于脱机状态的用户(可能位于列表末尾)现已联机。与该用户关联的数据已更改,新列表几乎将他置于列表顶部。我希望列表滚动到该位置。
另一方面,如果用户在线(例如,在第二位置),然后离线,我不希望列表滚动到底部(因为在线用户有没有相关性。
因此,允许这种粒度超过“recyclelerView'滚动?