繁体   English   中英

不同的菜单为不同的片段

[英]Different menu for different fragments

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

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

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

我想知道的是:
哪个是实现此功能的首选方式?
推荐什么?

希望这可以帮助

将项目添加到操作栏

您的片段可以通过实现onCreateOptionsMenu()将菜单项提供给活动的“选项”菜单(以及操作栏)。 但是,为了使此方法接收调用,您必须在onCreate()期间调用setHasOptionsMenu(),以指示该片段要将项添加到Options菜单(否则,片段将不会接收对onCreateOptionsMenu()的调用)。

然后,您从片段添加到“选项菜单”的任何项目都将附加到现有菜单项。 当选择菜单项时,片段还接收对onOptionsItemSelected()的回调。

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM