我在AsyncTaskLoader
的API调用中加载了一些数据。一切都很好但是当屏幕旋转时,滚动位置变为第一,因为在配置更改时再次设置适配器(但是API调用不是因为它是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);
}