在更新数据后,我们可以先获取 RecyclerView 的滚动位置,并将其保存在一个变量中。然后,当 RecyclerView 恢复到屏幕时,我们可以使用这个变量来恢复 RecyclerView 的滚动位置。下面是一个简单的示例:
private LinearLayoutManager layoutManager;
private int scrollPosition;
// 在 onCreate 方法中获取 layoutManager,并设置 RecyclerView 的 LayoutManager
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = findViewById(R.id.recyclerView);
layoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(layoutManager);
}
// 在更新数据之前,获取 RecyclerView 的滚动位置
private void beforeUpdateData() {
scrollPosition = layoutManager.findFirstVisibleItemPosition();
}
// 在更新数据之后,恢复 RecyclerView 的滚动位置
private void afterUpdateData() {
layoutManager.scrollToPosition(scrollPosition);
}
在更新数据前调用 beforeUpdateData()
方法,在更新数据后调用 afterUpdateData()
方法即可实现 RecyclerView 的滚动位置恢复。