显示在另一个片段中的一个片段的菜单项
问题描述:
我需要避免显示另一个片段中的菜单项。 这是在片段A我需要菜单项。在片段B中,我不需要它。但是,当我尝试从片段A转换到片段B.片段A的菜单项显示在片段B中。如何解决冲突?显示在另一个片段中的一个片段的菜单项
答
我也面临这个问题,我做这个
在onCreate方法解决它做到这一点
@Override
public void onCreate(Bundle savedInstanceState) {
setHasOptionsMenu(true);
super.onCreate(savedInstanceState);
}
在onCreateOptionMenu为此
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
menu.clear();
}
答
@Override public void onPrepareOptionsMenu(Menu menu) {
MenuItem item = menu.findItem(R.id.action_search);
item.setVisible(false);
}
,并在片段的onCreate()
setHasOptionsMenu(true);
答
在该片段中,你不希望显示任何菜单选项,您需要在OnCreate()setHasOptionsMenu(false);
, 这样的:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(false);
}
然而,显示您想要隐藏的菜单属于MainActivity。这就是它总是显示的原因。既然你想在片段级别控制菜单,我的建议是从活动中删除菜单代码并在Fragment中执行它。活动和片段可以有自己的独立菜单,如android开发人员网站中所述 - https://developer.android.com/guide/topics/ui/menus.html#options-menu
这很可能是由于您的片段中使用了'onCreateOptionsMenu' –
检查此[链接](http://stackoverflow.com/a/21498812/5882539)为您的解决方案 –