Вопрос по поводу навигации в приложении Android
Я использую Navigation Library.
Первый Fragment, от которого все начинается это LoginFragment. Как сделать так, чтобы я не мог вернуться на этот Fragment нажатием клавиши назад?
Я могу сделать это через интерфейс (проверяя размер Backstack, и выполнять переход назад, пока размер > 2).
Как это сделать через UI Navigation?
Ответы (2 шт):
Автор решения: Spatz
→ Ссылка
При навигации от логин-фрагмента нужно указать опцию setPopUpTo со значением true для второго параметра (inclusive), и тогда исходный фрагмент будет "поглощен" при возврате.
findNavController().navigate(
R.id.action_loginFragment_to_homeFragment,
null,
NavOptions.Builder()
.setPopUpTo(R.id.loginFragment, true)
.build()
)
Аналогичный параметр для XML-разметки: app:popUpToInclusive="true"
Автор решения: Volodymyr Zakharov
→ Ссылка
Use action with this parameters
<action
android:id="@+id/action_registerFragment_to_homeFragment"
app:destination="@id/homeFragment"
app:launchSingleTop="true"
app:popUpTo="@id/nav_graph"
app:popUpToInclusive="true" />