У меня есть некоторые данные, загруженные из вызова API в AsyncTaskLoader
. Все хорошо, но когда экран поворачивается, положение прокрутки становится первым, поскольку адаптер снова устанавливается при изменении конфигурации (но вызов 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);
}