支持 v7 ActionBarActivity,每次调用 SupportInvalidateOptionsMenu() 后调用 OnCreateOptionsMenu()
Support v7 ActionBarActivity, OnCreateOptionsMenu() called after each call to SupportInvalidateOptionsMenu()
在我的 Activity
(支持 v7 ActionBarActivity
)中,我有菜单和导航抽屉。
每当导航抽屉打开时,我都想隐藏菜单项。
我将它们隐藏在 onPrepareOptionsMenu()
.
如 android 中的文档所述,为了触发 onPrepareOptionsMenu()
,您需要调用 supportInvalidateOptionsMenu()
.
我就是这么做的。但是在我调用 supportInvalidateOptionsMenu()
之后,调用 onCreateOptionsMenu()
而不是 onPrepareOptionsMenu()
。
据我所知,onCreateOptionsMenu()
应该只在 Activity
的开头调用一次。
我错过了什么吗?
正确的循环是:
- 调用
supportInvalidateOptionsMenu()
导致菜单获取
重新创建,即 onCreateOptionsMenu()
被调用。
- 每当调用
onCreateOptionsMenu()
时,onPrepareOptionsMenu()
被调用准备菜单。
所以调用 supportInvalidateOptionsMenu()
总是会导致 onCreateOptionsMenu()
被调用。希望这有助于消除困惑。
在我的 Activity
(支持 v7 ActionBarActivity
)中,我有菜单和导航抽屉。
每当导航抽屉打开时,我都想隐藏菜单项。
我将它们隐藏在 onPrepareOptionsMenu()
.
如 android 中的文档所述,为了触发 onPrepareOptionsMenu()
,您需要调用 supportInvalidateOptionsMenu()
.
我就是这么做的。但是在我调用 supportInvalidateOptionsMenu()
之后,调用 onCreateOptionsMenu()
而不是 onPrepareOptionsMenu()
。
据我所知,onCreateOptionsMenu()
应该只在 Activity
的开头调用一次。
我错过了什么吗?
正确的循环是:
- 调用
supportInvalidateOptionsMenu()
导致菜单获取 重新创建,即onCreateOptionsMenu()
被调用。 - 每当调用
onCreateOptionsMenu()
时,onPrepareOptionsMenu()
被调用准备菜单。
所以调用 supportInvalidateOptionsMenu()
总是会导致 onCreateOptionsMenu()
被调用。希望这有助于消除困惑。