【发布时间】:2021-11-03 21:25:30
【问题描述】:
在我的项目中,我使用 DrawerLayout 和 BottomNavigation。 DrawerLayout 用于一些全局选项,BottomNavigation - 用于本地。但是……
我有一个问题: 当我使用 findNavController().navigate 打开新片段时,旧片段的标题更改为与新片段标题相同。
我的新片段代码:
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
(requireActivity() as AppCompatActivity).setSupportActionBar(binding.toolbar)
(requireActivity() as AppCompatActivity).supportActionBar!!.setDisplayHomeAsUpEnabled(true)
if (args.action == null) {
binding.toolbar.title = requireActivity().getString(R.string.menu_create_new_action)
} else {
binding.toolbar.title = requireActivity().getString(R.string.menu_edit_action)
}
}
我的导航:
<?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/nav_main">
<fragment
android:id="@+id/nav_main"
android:name="com.smog.bestdeals.ui.main.MainFragment"
android:label="@string/menu_timers"
tools:layout="@layout/fragment_main" >
<action
android:id="@+id/action_nav_main_to_nav_create_edit_timer"
app:destination="@id/nav_create_edit_timer">
</action>
<action
android:id="@+id/action_nav_main_to_nav_create_edit_action"
app:destination="@+id/nav_create_edit_action">
</action>
<action
android:id="@+id/action_nav_main_to_nav_settings"
app:destination="@id/nav_settings" />
<action
android:id="@+id/action_nav_main_to_nav_timers"
app:destination="@id/nav_timers"/>
</fragment>
<fragment
android:id="@+id/nav_timers"
android:name="com.smog.bestdeals.ui.home.HomeFragment"
android:label="@string/menu_timers"
tools:layout="@layout/fragment_home" />
<fragment
android:id="@+id/nav_create_edit_timer"
android:name="com.smog.bestdeals.ui.timer.CreateEditTimerFragment"
android:label="@string/menu_create_new_timer"
tools:layout="@layout/fragment_create_edit_timer" >
<action
android:id="@+id/action_nav_create_edit_timer_to_nav_main"
app:destination="@id/nav_main" />
<argument
android:name="timer"
app:argType="com.smog.bestdeals.data.repository.Timer"
app:nullable="true" />
</fragment>
<fragment
android:id="@+id/nav_create_edit_action"
android:name="com.smog.bestdeals.ui.action.CreateEditActionFragment"
android:label="@string/menu_create_new_action"
tools:layout="@layout/fragment_create_edit_action" >
<action
android:id="@+id/action_nav_create_edit_action_to_nav_main"
app:destination="@id/nav_main" />
<argument
android:name="action"
app:argType="com.smog.bestdeals.data.repository.Action"
app:nullable="true" />
</fragment>
</navigation>
如何解决这个问题?谢谢
附:我创建了这个答案,因为我寻找错误大约 1 小时。也许有人会遇到同样的问题,所以我决定在网站上添加一个问题和答案。
【问题讨论】:
标签: android navigation fragment navigation-drawer toolbar