0

我有 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);
}

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

4

2 回答 2

2

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

于 2012-06-29T21:02:49.827 回答
0

您可以使用isVisible()每个方法Fragment来动态检查正在显示的内容,然后在 Activity 中适当地添加。

于 2012-06-28T20:55:32.150 回答