我可以为TabHost的每个标签设置不同的菜单

时间:2011-04-11 08:43:54

标签: android

menus的每个tab可能会有不同的TabHost吗?

2 个答案:

答案 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);
}