RecyclerView滚动到调用SubmitList()后首先可见的项目

时间:2019-05-28 07:49:36

标签: android android-recyclerview android-jetpack

当我们将ListAdapterRecyclerView.AdapterAsyncListDiffer一起使用时,在调用submitList()之后我们会遇到奇怪的行为-RecyclerView滚动到更改其位置的项目。

让我在示例中进行解释。

列表中有5个项目:A,B,C,D,E。用户刚刚打开了屏幕,只有A,B和C可见。现在由于一些交互作用,A项被移到了最后一个位置,所以我们当前的顺序是B,C,D,E,A。

// After init
adapter.submitList(listOf("A", "B", "C", "D", "E")

// After some interaction
adapter.submitList(listOf("B", "C", "D", "E", "A")

现在很奇怪,ReyclerView滚动到列表的底部。但是它仅在第一个可见项更改其位置时适用。当例如我们将顺序更改为A,C,D,E,B,RecyclerView未滚动。

我认为这可能与this issue有关,因为不同之处可能称为notifyItemMoved。不幸的是,在这种情况下,我们无法使用notifySomething方法进行操作,因此不适用于此问题。

0 个答案:

没有答案