Когда контейнер NavHostFragment исчез, обратный стек пуст - PullRequest
0 голосов
/ 10 мая 2019

Мое приложение имеет одно действие 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.

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

...