背景
我有一个类似的场景,如关于片段的 android 网站示例所示(链接在这里):
- 小屏幕,纵向:单窗格
- 小屏幕,横向:单窗格
- 7" 平板电脑,纵向:单窗格
- 7" 平板电脑,横向:双窗格,宽
- 10" 平板电脑,纵向:双窗格,窄
- 10" 平板电脑,横向:双窗格,宽
- 电视,横向:双窗格,宽
在我的案例中,操作栏始终显示,现在我只有操作项。
问题
下一个场景非常奇怪:
设备有一个纵向窗格和两个横向窗格。
我的两个片段都创建了自己的操作栏项目。
从纵向切换到横向显示所有操作项(这是我想要的)
从横向切换到纵向显示所有操作项。
这没有多大意义,因为右窗格不存在,但由于某种原因,它的片段似乎存在于片段管理器中,并且它的 onCreateOptionsMenu 被调用,即使它根本没有显示。
我试过的
我试图在包含两个片段的活动上调用 invalidateOptionsMenu() ,但它没有帮助
我还为每个片段添加了下一个代码,它运行良好:
@Override
public void onStart() {
super.onStart();
setHasOptionsMenu(true);
}
@Override
public void onStop() {
super.onStop();
setHasOptionsMenu(false);
}
问题
为什么会这样?
我启用/禁用 optionsMenu 的解决方案(从而启用/禁用片段创建的操作栏项目)是一个可行的解决方案吗?有更好的解决方案吗?
让片段首先处理操作项甚至是一件好事吗?