我读到可以为此guide上的每个标签显示不同的菜单。
我在MainActivity中初始化了3个标签。
即使我在每个包含的onPrepareOptionsMenu()
中调用onCreateOptionsMenu()
或Activity
,也不会执行它们。
我刚刚在MainActivity的初始化中显示了一个菜单......
MainActivity:
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.layout.menu_tab_1, menu);
return true;
}
显示此菜单。 我的一个TabActivities:
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
menu.clear();
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.layout.menu_tab_2, menu);
return true;
}
更改选项卡时,不会刷新此菜单。 但我尝试了多种组合(onCreate / onPrepare,Override ...)但没有成功。
怎么做得好? 感谢
答案 0 :(得分:0)
您有两种选择。
首先,您可以覆盖onKeyDown方法,并检测用户何时按下菜单,而不是让主活动处理它,而是将事件分派给活动选项卡活动。
否则,您可以使用片段而不是Tab主机中的活动。片段机制非常适合组合来自多个源的选项菜单(通常是一个活动和一个或多个片段)。