问题 onCreateOptionsMenu何时在启用ActionBar的活动中发生?


我知道菜单项将被设置为ActionBar中的操作图标。

我想知道这个onCreateOptionsMenu函数,它什么时候在活动生命周期中调用。

从我的测试来看,它甚至没有在onResume之后


1905
2018-02-29 01:23


起源

只需在“onCreateOptionsMenu被调用”上进行Google搜索即可检索此内容 stackoverflow.com/questions/7705927/... - Cengiz Can


答案:


文档说明如下:

public boolean onCreateOptionsMenu (Menu menu)

初始化Activity的标准选项菜单的内容。您应该将菜单项放入菜单中。这是 只召唤一次,第一次显示选项菜单。要在每次显示菜单时更新菜单,请参阅onPrepareOptionsMenu(菜单)。 

进一步说明: http://developer.android.com/reference/android/app/Activity.html#onCreateOptionsMenu%28android.view.Menu%29

并引用CommonsWare提出的另一个相关问题:

首先调用onCreate方法,然后在调用onCreateOptionsMenu之前调用它。

在具有官方Honeycomb风格的操作栏的设备和应用程序中也是如此。如果没有操作栏,则在用户调出菜单之前不应调用onCreateOptionsMenu(),通常是按MENU按钮。

链接在这里: Android:在Activity生命周期中何时调用onCreateOptionsMenu?


9
2018-02-29 01:56





在我的测试中,我发现在onResume之后调用onCreateOptionsMenu,你可以在生命周期的完整图表中看到:

https://raw.githubusercontent.com/xxv/android-lifecycle/master/complete_android_fragment_lifecycle.png


1
2018-06-30 08:25





我相信它在onCreate的同时被调用,就在菜单出现之前,在这种情况下是动作栏


0
2018-02-29 01:33



从我的测试来看,它甚至没有在onResume之后 - virsir
我不相信它会在onResume之后被调用,菜单只能创建一次,要改变它你需要使用它来更新它 invalidateOptionsMenu() 请求系统调用 onPrepareOptionsMenu() - FabianCook


这是第一次触摸“选项”专用按钮时调用。

我正在试图弄清楚何时支持ActionBar。

此外,您可以请求活动来执行此操作(但您需要一个菜单​​存根实现)

activity.onCreatePanelMenu(Window.FEATURE_OPTIONS_PANEL, menu);

0
2017-11-22 14:46