我从 API 调用中加载了一些数据AsyncTaskLoader
。一切都很好,但是当屏幕旋转时,滚动位置会首先出现,因为在配置更改时再次设置了适配器(但是 API 调用没有进行,因为它是 a Loader
)。我尝试按照以下链接中的建议保存滚动位置
我保存了滚动状态onSavedInstanceState()
并恢复了它onRestoreInstanceState()
也尝试过onPause()
,onResume()
但是当旋转屏幕时,recyclerview 总是从第一个位置显示项目。
这是在我的应用程序中保存和恢复滚动状态的代码
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putParcelable(LIST_STATE, mMoviesListRecycler.getLayoutManager().onSaveInstanceState());
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
listScroll=savedInstanceState.getParcelable(LIST_STATE);
mMoviesListRecycler.getLayoutManager().onRestoreInstanceState(listScroll);
}