Вопрос по поводу навигации в приложении 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" />
→ Ссылка