notifyDataSetChanged 不滚动
时间: 2023-12-27 20:02:25 浏览: 103
浅谈Android中适配器的notifyDataSetChanged()为何有时不刷新
如果你想在调用 `notifyDataSetChanged()` 方法后不滚动到顶部,可以使用以下方法之一:
1. 使用 `notifyItemRangeChanged()` 方法,该方法可以指定更新的范围,调用后不会滚动到顶部。
2. 在调用 `notifyDataSetChanged()` 方法之前记录当前可见的第一个 item 的位置,然后在更新数据后使用 `scrollToPosition()` 方法将列表滚动到该位置。
例如,你可以在 `RecyclerView` 的 `LayoutManager` 中获取当前可见的第一个 item 的位置:
```java
int firstVisibleItemPosition = ((LinearLayoutManager) recyclerView.getLayoutManager())
.findFirstVisibleItemPosition();
```
然后在更新数据后使用 `scrollToPosition()` 方法将列表滚动到该位置:
```java
recyclerView.getLayoutManager().scrollToPosition(firstVisibleItemPosition);
```
阅读全文