一个片段的菜单项显示在另一个片段中
Menu items of one fragment showing in another fragment
我需要避免在另一个片段中显示一个片段的菜单项。
那是在片段 A 中,我需要菜单项。在片段 B 中我不需要它。但是当我尝试从片段 A 过渡到片段 B 时,片段 A 的菜单项显示在片段 B 中。如何解决冲突?
Possible duplicate?
@Override public void onPrepareOptionsMenu(Menu menu) {
MenuItem item = menu.findItem(R.id.action_search);
item.setVisible(false);
}
在片段的 onCreate() 中
setHasOptionsMenu(true);
我也遇到了这个问题,我是这样解决的
在 onCreate 方法中执行此操作
@Override
public void onCreate(Bundle savedInstanceState) {
setHasOptionsMenu(true);
super.onCreate(savedInstanceState);
}
在 onCreateOptionMenu 中执行此操作
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
menu.clear();
}
在您不想显示任何菜单选项的 Fragment 中,您需要在 onCreate() 中 setHasOptionsMenu(false);
,
像这样:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(false);
}
但是,您想要隐藏的正在显示的菜单属于 MainActivity。这就是它总是显示的原因。既然你想在 Fragment 级别控制菜单,我的建议是从 Activity 中删除菜单代码并在你的 Fragment 中实现它。 Activity 和片段可以有自己的单独菜单,如 android 开发者网站所述 - https://developer.android.com/guide/topics/ui/menus.html#options-menu
我需要避免在另一个片段中显示一个片段的菜单项。 那是在片段 A 中,我需要菜单项。在片段 B 中我不需要它。但是当我尝试从片段 A 过渡到片段 B 时,片段 A 的菜单项显示在片段 B 中。如何解决冲突?
Possible duplicate?
@Override public void onPrepareOptionsMenu(Menu menu) {
MenuItem item = menu.findItem(R.id.action_search);
item.setVisible(false);
}
在片段的 onCreate() 中
setHasOptionsMenu(true);
我也遇到了这个问题,我是这样解决的
在 onCreate 方法中执行此操作
@Override
public void onCreate(Bundle savedInstanceState) {
setHasOptionsMenu(true);
super.onCreate(savedInstanceState);
}
在 onCreateOptionMenu 中执行此操作
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
menu.clear();
}
在您不想显示任何菜单选项的 Fragment 中,您需要在 onCreate() 中 setHasOptionsMenu(false);
,
像这样:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(false);
}
但是,您想要隐藏的正在显示的菜单属于 MainActivity。这就是它总是显示的原因。既然你想在 Fragment 级别控制菜单,我的建议是从 Activity 中删除菜单代码并在你的 Fragment 中实现它。 Activity 和片段可以有自己的单独菜单,如 android 开发者网站所述 - https://developer.android.com/guide/topics/ui/menus.html#options-menu