Как мне поменять местами фрагменты в рамках той же MainActivity? - PullRequest
0 голосов
/ 02 декабря 2019

У меня есть MainActivity , которая содержит основной фрагмент и нижняя панель навигации (нижняя панель навигации определяет, какой фрагмент отображать).

===== СЦЕНАРИЙ ====

Допустим, в нижней панели навигации у меня есть кнопки A, B и C, которые переключаются в состояния A, B и C,Когда я нажимаю на кнопку B, я хочу, чтобы она переходила к определенному фрагменту. Я уже получил это.


В настоящее время я не могу этого достичь:

Однако внутри фрагмента у меня есть кнопка, которая после нажатия должна привести меняк другому фрагменту, НО на нижней панели навигации, я все еще в состоянии B. Например: нажатие на кнопку покажет мне другую страницу, чтобы заполнить какую-то форму


Я не уверен, что лучший подходк этому. Любая экспертиза приветствуется.

Приветствия

1 Ответ

0 голосов
/ 02 декабря 2019

Я нашел решение этой проблемы, которое заключается в Выполнении транзакций с фрагментами

Проверьте этот ресурс Android

Для транзита между действиями высоздайте и начните намерение, однако для фрагментов вы выполняете транзакции фрагментов.

Код, представленный ниже, должен быть легким для понимания:

// Create new fragment and transaction
Fragment newFragment = new ExampleFragment();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();

// Replace whatever is in the fragment_container view with this fragment,
// and add the transaction to the back stack
transaction.replace(R.id.fragment_container, newFragment);
transaction.addToBackStack(null);

// Commit the transaction
transaction.commit();

Дополнительным примечанием здесь является transaction.addToBackStack(null); Это сохраняетBackstate этой транзакции. То есть, когда вы нажимаете кнопку «Назад», он знает, куда перейти - предыдущий фрагмент (который может быть немного ошеломляющим, поскольку оба фрагмента все еще находятся в одном и том же состоянии основной активности (обычно это одна из вкладок кнопки).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...