По этому вопросу более чем достаточно вопросов, но, похоже, ни один из методов, которые я пробую, не работает.Все, что я пытаюсь сделать, это восстановить "положение прокрутки" RecyclerView, который вложен во фрагмент.Например, когда новый фрагмент открывается (с помощью .replace ()), а затем закрывается, исходный фрагмент показывает тот же экран, который был до открытия нового фрагмента, т.е.положение прокрутки RecyclerView восстановлено;однако это не то, что происходит.Я использую нижнюю навигацию, чтобы открыть фрагменты.Ниже приведен метод, который я использую, и который, как я думал, будет работать, поскольку он является наиболее распространенным ответом на эту проблему.
private Parcelable recLayoutState;
private Bundle recBundle;
private static String LIST_STATE = "LIST_STATE";
@Override
public void onPause(){
super.onPause();
recLayoutState = homeRecyclerLayoutManager.onSaveInstanceState();
recBundle = new Bundle();
recBundle.putParcelable(LIST_STATE,recLayoutState);
}
@Override
public void onResume(){
super.onResume();
if (recBundle != null){
recLayoutState = recBundle.getParcelable(LIST_STATE);
homeRecyclerLayoutManager.onRestoreInstanceState(recLayoutState);
}
}
Этот код находится в файле фрагмента. Java.
Когда я открываю новый фрагмент, а затем возвращаюсь к этому, RecyclerView устанавливается сверху, а не на предыдущую позицию прокрутки.
Любая помощь приветствуется, и я рад предоставить больше информации, если это необходимо!Ура!