显示在另一个片段中的一个片段的菜单项

问题描述:

我需要避免显示另一个片段中的菜单项。 这是在片段A我需要菜单项。在片段B中,我不需要它。但是,当我尝试从片段A转换到片段B.片段A的菜单项显示在片段B中。如何解决冲突?显示在另一个片段中的一个片段的菜单项

+0

这很可能是由于您的片段中使用了'onCreateOptionsMenu' –

+0

检查此[链接](http://*.com/a/21498812/5882539)为您的解决方案 –

我也面临这个问题,我做这个

在onCreate方法解决它做到这一点

@Override 
public void onCreate(Bundle savedInstanceState) { 
    setHasOptionsMenu(true); 
    super.onCreate(savedInstanceState); 
} 

在onCreateOptionMenu为此

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    menu.clear(); 
} 

Possible duplicate?

@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