我通过导航组件BottomNavigationView
连接了多达 3 个片段(A、B 和 C) 。我还有一个登录片段,成功登录后我将其从堆栈中弹出。
观察到的导航行为:
A > B > C > A > B > C > B >返回> C >返回> B >返回> A > 返回>退出
预期行为:
(在阅读了@ianhanniballake 和导航原则的评论后)
A > B > C > A > B > C > B >返回> A > 返回>退出
我的问题类似于循环导航逻辑,但我在BottomNavigationView
. 如何实现我的预期行为?
main_nav.xml
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/main_nav"
app:startDestination="@id/login_fragment">
<fragment
android:id="@+id/login_fragment"
android:name="com.example.app.LoginFragment"
android:label="Login">
<action
android:id="@+id/login_action"
app:destination="@id/home_fragment"
app:launchSingleTop="true"
app:popUpTo="@id/main_nav"
app:popUpToInclusive="true" />
</fragment>
<!-- Fragments A, B and C tied to BottomNavigationView-->
</navigation>
BottomNavigationView
设置
navController = findNavController(R.id.main_nav_host)
mainActivityBinding.bottomNavView.setupWithNavController(navController)