在我的 Activity
(支持 v7 ActionBarActivity
)中,我有菜单和抽屉导航。
当抽屉导航打开时,我想隐藏菜单项。
我将它们隐藏在 onPrepareOptionsMenu()
中。
正如 android 文档中所述,为了触发 onPrepareOptionsMenu()
,您需要调用 supportInvalidateOptionsMenu()
。
我就是这么做的。但在我调用 supportInvalidateOptionsMenu()
后,会调用 onCreateOptionsMenu()
,然后调用 onPrepareOptionsMenu()
。
据我了解,onCreateOptionsMenu()
应该仅在 Activity
开始时调用一次。
我错过了什么吗?
最佳答案
正确的周期是:
- 调用
supportInvalidateOptionsMenu()
会导致菜单获取 重新创建,即调用onCreateOptionsMenu()
。 - 每当调用
onCreateOptionsMenu()
时,onPrepareOptionsMenu()
被调用来准备菜单。
因此调用 supportInvalidateOptionsMenu()
将始终导致 onCreateOptionsMenu()
被调用。希望这有助于消除困惑。
关于android - 支持 v7 ActionBarActivity,每次调用 SupportInvalidateOptionsMenu() 后调用 OnCreateOptionsMenu(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28803908/