У меня есть действие Dashboard Activity
, в котором есть фрагмент и нижнее меню навигации, которое настроено следующим образом в DashboardActivity.kt
:
setContentView(R.layout.activity_dashboard)
val navView: BottomNavigationView = findViewById(R.id.nav_view)
val navController = findNavController(R.id.nav_host_fragment)
navView.setupWithNavController(navController)
В нижней части навигации есть 3 элемента: @+id/navigation_scoreboard
, @+id/navigation_dashboard
и @+id/navigation_gamesettings
В моем @+id/navigation_dashboard
нижнем пункте навигационного меню - пользователь может ввести некоторые данные в поле ввода и нажать кнопку, на которой я выполняю вызов API и перехожу к результату screen, @+id/slipup_result_fragment
, при успешном вызове API с использованием навигации + наблюдателей за данными в реальном времени.
Теперь проблема: Когда я ухожу от экрана результатов, @+id/slipup_result_fragment
, скажем, перейдя к другому элементу в нижнем навигационном меню, а затем нажмите элемент меню для @+id/navigation_dashboard
, я снова попадаю на экран результатов, а не на исходный фрагмент - @+id/navigation_dashboard
, и, похоже, не могу найти способ вернуться к go к исходному фрагменту.
Что я здесь делаю не так?
Обновление: график навигации для фрагмента в Dashboard Activity
выглядит следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<navigation 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:id="@+id/mobile_navigation"
app:startDestination="@+id/navigation_scoreboard">
<fragment
android:id="@+id/navigation_scoreboard"
android:name="com.ezchange.mvp.ui.scoreboard.ScoreboardFragment"
android:label="@string/title_scoreboard"
tools:layout="@layout/fragment_scoreboard" />
<fragment
android:id="@+id/navigation_dashboard"
android:name="com.ezchange.mvp.ui.slipup.SlipUpFragment"
android:label="@string/title_slipup"
tools:layout="@layout/fragment_slipup" >
<action
android:id="@+id/action_navigation_dashboard_to_slipUpResultFragment"
app:destination="@id/slipup_result_fragment"
app:popUpTo="@id/navigation_dashboard"
app:popUpToInclusive="true" />
</fragment>
<fragment
android:id="@+id/navigation_gamesettings"
android:name="com.ezchange.mvp.ui.gamesettings.GameSettingsFragment"
android:label="@string/title_game_settings"
tools:layout="@layout/fragment_game_settings" />
<fragment
android:id="@+id/slipup_result_fragment"
android:name="com.ezchange.mvp.ui.slipup.SlipUpResultFragment"
android:label="fragment_slip_up_result"
tools:layout="@layout/fragment_slip_up_result" >
<action
android:id="@+id/action_slipUpResultFragment_to_navigation_scoreboard"
app:destination="@id/navigation_scoreboard" />
</fragment>
</navigation>
Обновление №2: нижнее меню XML выглядит так:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/navigation_scoreboard"
android:icon="@drawable/ic_home_black_24dp"
android:title="@string/title_scoreboard" />
<item
android:id="@+id/navigation_dashboard"
android:icon="@drawable/ic_dashboard_black_24dp"
android:title="@string/title_slipup" />
<item
android:id="@+id/navigation_gamesettings"
android:icon="@drawable/ic_notifications_black_24dp"
android:title="@string/title_game_settings" />
</menu>