【发布时间】:2020-06-18 05:06:05
【问题描述】:
我在使用 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,因为实现了底部导航。
【问题讨论】:
标签: android android-architecture-navigation android-bottomnavigationview