menus
的每个tab
可能会有不同的TabHost
吗?
答案 0 :(得分:6)
是的,您可以在onCreateOptionsMenu
中根据标签膨胀不同的菜单
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
int tab = getTabHost().getCurrentTab()
if (tab==1)
inflater.inflate(R.menu.main_menu, menu);
else
inflater.inflate(R.menu.other_menu, menu);
return true;
}
您需要在res/menu
中为此提供不同版本的menu.xml文件。
答案 1 :(得分:1)
如果您使用的是片段,则可以将setHasOptionsMenu(true);
置于片段的onCreate
方法内,并覆盖onCreateOptionsMenu
。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.fragment_xxx, menu);
}