Кнопка назад не работает, когда я хочу вернуться к предыдущему фрагменту

Я управляю двумя фрагментами в моей MainActivity.

Одним из них является подкласс ListFragment для отображения списка элементов.

Основная идея заключается в переходе к другому представлению списка, когда пользователь нажимает на один из элементов, и пользователь может вернуться к предыдущему представлению списка, нажав кнопку "Назад".

Код для передачи в новый список отображается следующим образом:

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
NewFragment newFragment = new NewFragment();
newFragment.setArguments(getIntent().getExtras());
transaction.replace(R.id.fragment_layout, newFragment);
transaction.addToBackStack(null);
transaction.commit();

Однако я просто выхожу из приложения, не возвращаясь к предыдущему представлению. Что я делаю неправильно?

2 ответа

В отличие от действий, с фрагментами вы должны явно добавлять вещи в "задний стек". в основном, когда ваше приложение отображает новый фрагмент, который вы хотите вернуть, чтобы вернуться к фрагменту предварительного просмотра, вы вызываете FragmentTrasaction.addToBackStack(),

фреймворк обрабатывает выталкивание фрагмента из заднего стека, когда пользователь нажимает назад. если вам нужно что-то более сложное, вы можете отменить нажатие кнопки "Назад" для своего фрагмента. этот вопрос охватывает это,

Фрагмент Android ручка нажатия кнопки назад

Кнопка "Назад" закрывает верхнюю активность и не перемещается назад в истории фрагментов. Вы должны сделать это самостоятельно с помощью popBackStack()

Другие вопросы по тегам