Android 如何将选项菜单添加到NavigationView中的片段
您好,我有点麻烦,我正在尝试将选项菜单添加到我的片段(VoiceCoiSelectionFragment)我有这个导航图Android 如何将选项菜单添加到NavigationView中的片段,android,navigation,android-optionsmenu,Android,Navigation,Android Optionsmenu,您好,我有点麻烦,我正在尝试将选项菜单添加到我的片段(VoiceCoiSelectionFragment)我有这个导航图 <?xml version="1.0" encoding="utf-8"?> <navigation xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.andro
<?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/communication_menu_graph"
app:startDestination="@id/commMenuFragment">
<fragment
android:id="@+id/commMenuFragment"
android:name="ca.stackoverflow.menu.comm_menu.CommMenuFragment"
android:label="@string/comm_menu_label"
tools:layout="@layout/fragment_comm_menu">
<action
android:id="@+id/action_commMenu_to_voiceCois"
app:destination="@+id/voiceCoi" />
</fragment>
<fragment
android:id="@+id/voiceCoi"
android:name="ca.stackoverflow.VoiceCoiSelectionFragment"
android:label="@string/voiceCoi"
tools:layout="@layout/coi_panel" />
</navigation>
在我的VoiceCoiSelectionFragment中,我尝试将HasOptions菜单添加到true,而不是将其充气
@Override
public void onCreateOptionsMenu(@NonNull final Menu menu, @NonNull final MenuInflater inflater)
{
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.saving, menu);
}
我的活动的onCreate包含
NavigationUI.setupWithNavController(_viewBinding.menuAppBar, _navController, menuAppBarConfig);
_viewBinding.menuAppBar.setNavigationIcon(ca.rheinmetall.argus.R.drawable.ic_arrow_back_white_24dp);
_viewBinding.menuAppBar.setNavigationOnClickListener(v -> onBackPressed());
但是它不起作用,我缺少什么吗?片段菜单API需要两件事:
setSupportActionBar()
onCreate()
确保你已经完成了这两件事。你在调用片段的
onCreate()
?是的,我在调用onCreate(),你能在调用setSupportActionBar()
的地方包含你的活动代码吗?是的,我忘了在我的活动setSupportActionBar(_viewBinding.menuAppBar)中添加它;
NavigationUI.setupWithNavController(_viewBinding.menuAppBar, _navController, menuAppBarConfig);
_viewBinding.menuAppBar.setNavigationIcon(ca.rheinmetall.argus.R.drawable.ic_arrow_back_white_24dp);
_viewBinding.menuAppBar.setNavigationOnClickListener(v -> onBackPressed());