Положение прокрутки RecyclerView не меняется и показывает элементы с самого начала при изменении конфигурации

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

person Krishna Sapkota    schedule 19.12.2017    source источник
comment
Оказывается, мне нужно обернуть onRestoreInstanceState в Handler, чтобы отложить выполнение восстановления. Я получил эту идею из этого сообщения. Это сработало с этим хаком, но я не думаю, что это хорошая идея. Что ты сказал?   -  person Krishna Sapkota    schedule 19.12.2017