Мое приложение имеет одно действие MainActivity.Вот XML-файл:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<FrameLayout
android:id="@+id/main_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone">
<fragment
android:id="@+id/nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:defaultNavHost="true"
app:navGraph="@navigation/lovable_app_navigation" />
</FrameLayout>
<fragment
android:id="@+id/login_fragment"
android:name="LoginFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
Я использую компонент навигации, а LoginFragment находится за пределами графика навигации.Когда пользователь где-то в приложении и сеанс истекает, мне нужно отобразить loginFragment поверх navFragment.Я делаю это, делая мой loginFramgnent видимым, а mainContainer исчезает.В этот момент, если пользователь нажимает назад, мне нужно отправить его на фрагмент, который был раньше.На onBackPressed
метод из деятельности мне нужно знать, есть ли фрагменты в бэк-стек.Я пытался host.childFragmentManager.backStackEntryCount
и supportFragmentManager?.primaryNavigationFragment?.childFragmentManager?.backStackEntryCount
, и каждый из них возвращает 0.
Почему это происходит?Как я могу узнать, были ли фрагменты в стеке до входа в систему?