Как сохранить текущее положение прокрутки при вращении приложения?

Я делаю приложение манга, но я застрял с сохранением текущего положения прокрутки, когда пользователь поворачивает свое устройство (пейзаж на портрет или портрет на пейзаж). Я использую RecyclerView и GridLayoutManager. Вот два блока кода, которые я исследовал в интернете:

@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
    rvItems.getLayoutManager().scrollToPosition(savedInstanceState.getInt("position"));
}

@Override
protected void onSaveInstanceState(Bundle outState) {
    outState.putInt("position", ((GridLayoutManager)rvItems.getLayoutManager()).findFirstCompletelyVisibleItemPosition());
    super.onSaveInstanceState(outState);
}

Я использую его и либо в onResume()илиonPause(), ни один из них не работает. Поэтому я прошу любую идею или предложение, которые решают мою проблему? Любой комментарий будет approriate.

P/S: Еще одна проблема, есть ли какое-либо решение для остановки загрузки всех ресурсов / данных в текущей деятельности при вращении экрана пользователя? Я имею в виду, что в моем приложении может быть множество данных и ресурсов либо текста и изображений, как я знаю, каждый раз, когда пользователь поворачивает свой экран, функция onCreate()и onDestroy()была вызвана, что все данные в onCreate()функции будут загружены снова. I need the resource / data only load one time since it’s opened, then it won’t load resource when user rotates their screen.

Мое письмо может быть очень плохо, но теперь я придерживаюсь многих проблем без какого-либо решения, которое я могу думать или искать в интернете.

Спасибо за чтение!

1 ответ