不同片段的菜单

我有一个有2个片段的活动。
1片段是可见的,每个片段有不同的选项菜单

我可以通过两种不同的方式来实现这一行为。

1 – 我可以通过在每个联系人中调用onCreateOptionsMenu来为每个片段添加不同的菜单。
2 – 我只能在活动级别有一个菜单,并且可以select在onPrepareOptionsMenu显示特定的选项

我想知道的是:
哪个是实现这个function的最佳方式?
什么build议?

Solutions Collecting From Web of "不同片段的菜单"

我会遵循第一个选项,因为每个片段的专用资源菜单看起来更清晰,并且还降低了代码复杂性,以便维护可见和不可见的内容(如果您要通过onPrepareOptionsMenu并有代码隐藏&显示不同的菜单)。

如果你的片段中有一些动作,那么你可以创build一个基本片段类,每个片段都可以扩展。

希望这可以帮助

将项目添加到操作栏

您的片段可以通过实现onCreateOptionsMenu()将菜单项目贡献给活动的选项菜单(以及因此的操作栏)。 然而,为了让这个方法接收到调用,你必须在onCreate()期间调用setHasOptionsMenu()来指示这个片断想要添加项目到选项菜单(否则,这个片断将不会接收到onCreateOptionsMenu() )。

您随后从片段添加到“选项”菜单的任何项目都会附加到现有的菜单项目中。 当select一个菜单项时,片段也接收onOptionsItemSelected()的callback。

你也可以在你的分片布局中注册一个视图,通过调用registerForContextMenu()来提供一个上下文菜单。 当用户打开上下文菜单时,片段接收对onCreateContextMenu()的调用。 当用户select一个项目时,片段接收对onContextItemSelected()的调用。

http://developer.android.com/guide/components/fragments.html