我的应用程序中有多个模块,其中一些是UI模块。UI模块中有一个NavigationGraph
,它包含在应用程序内部。
该应用同时具有BottomNavigationView
和Toolbar
。因此,我陷入了一些过渡。我将在下面分享代码并阐述问题。
这是我的应用导航图
<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_group">
<fragment
android:id="@+id/navigation_group"
android:name="com.example.group.view.fragments.GroupHostFragment"
android:label="@string/title_group"
tools:layout="@layout/fragment_home" />
<fragment
android:id="@+id/navigation_scene"
android:name="com.wisilica.scene.view.SceneHostFragment"
android:label="@string/title_scene"
tools:layout="@layout/fragment_dashboard" />
...
</navigation>
每个片段都是UI模块中的主机片段。
我的仪表板活动布局
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appbarLayout">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar" />
</com.google.android.material.appbar.AppBarLayout>
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottomNavView"
.................
app:menu="@menu/bottom_nav_menu" />
<fragment
android:id="@+id/nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
.................
app:navGraph="@navigation/mobile_navigation" />
</androidx.constraintlayout.widget.ConstraintLayout>
DashboardActivity代码
setupActionBarWithNavController(navController, appBarConfiguration)
toolbar.setupWithNavController(navController)
bottomNavView.setupWithNavController(navController)
点击底部菜单项时,它运行良好,并导航到其他主机片段。但是问题是 homeUp按钮仅显示单击第二个主机片段,而不是单击第一个主机片段及其目的地。
Dashboard Graph
| |
v v
hostA | host B
| |
V V
dest1 (dest2) dest1(dest2)
最初,我们在hostA上(将显示目标1),但是homeUp符号将不显示(确定),然后单击dest2,homeUp符号将不显示(为什么)
单击了底视图菜单项并移至hostB,显示了homeUp符号(为什么),并单击了按钮
并移至hostA。
我尝试将hostA和hostB的navGraph包括在内,然后它对BottomNavigationView没有响应
请帮助我解决此问题?
预先感谢
答案 0 :(得分:0)
您需要对Graph XML Fragments使用相同的菜单项ID。
其他事物将被自动管理。