不要在largelayout上调用Fragment中的onCreateOptionsMenu

时间:2012-06-28 18:45:00

标签: android fragment options-menu

我有3 Fragment个,在正常(小)布局中都是在单独的活动中。他们应该在小布局中提供选项菜单。

在大型布局中,我在一个Activity中有3个片段,导致菜单填充所有三个片段膨胀的按钮。我该如何防止这种情况,并且只允许活动对选项菜单进行充气,同时仍然在较小的设备上保留该功能?

- 编辑 -

因此每个Fragment使用以下代码:

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

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

当显示所有三个片段时,所有片段都会执行onCreateOptionsMenu(),所有项目都会出现三次。 我想要的是父Activity负责创建选项菜单。

2 个答案:

答案 0 :(得分:2)

在每个片段中,我将构建整个菜单。我所做的是,在Fragments中只添加他们特定的菜单项,在父Activity中我将构建一般项。

答案 1 :(得分:0)

您可以在每个isVisible()上使用Fragment方法动态检查正在显示的内容,然后在活动中正确添加。