2

我从 API 调用中加载了一些数据AsyncTaskLoader。一切都很好,但是当屏幕旋转时,滚动位置会首先出现,因为在配置更改时再次设置了适配器(但是 API 调用没有进行,因为它是 a Loader)。我尝试按照以下链接中的建议保存滚动位置

链接 1

我保存了滚动状态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);
}
4

0 回答 0