使用 BottomNavigation + Navigation 组件时遇到问题。基本上,当通过底部导航导航到片段时,popBackStack()
将应用程序带到 startDestination 而不是上一个片段。
class HomeFragment {
...
bottomNavigation.setupWithNavController(findNavController(R.id.navHost))
...
}
<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/main_navigation"
app:startDestination="@id/splashFragment">
<fragment
android:id="@+id/splashFragment"
android:name="SplashFragment"
android:label="SplashFragment"
tools:layout="@layout/fragment_splash">
<action
android:id="@+id/action_splashFragment_to_A"
app:destination="@id/A" />
</fragment>
<fragment
android:id="@+id/A"
android:name="AFragment"
android:label="AFragment"
tools:layout="@layout/A">
<action
android:id="@+id/action_A_to_B"
app:destination="@id/B" />
</fragment>
<fragment
android:id="@+id/B"
android:name="BFragment"
android:label="BFragment"
tools:layout="@layout/B">
<action
android:id="@+id/actiob_B_to_homeFragment"
app:destination="@id/homeFragment" /> <!--bottomNavigation implemented in this fragment-->
</fragment>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/item1" />
<item
android:id="@+id/item2" />
<item
android:id="@+id/item3" />
</menu>
item
当我从底部导航导航到那些框架上的任何内容时,触发findNavController().popBackStack()
会将应用程序带回SplashFragment
并且应该到HomeFragment
,因为实现了底部导航。