在我的Activity
支持v7 ActionBarActivity
中,我有菜单和导航抽屉。
当导航抽屉打开时,我想隐藏菜单项。
我将它们隐藏在onPrepareOptionsMenu()
。
正如Android文档中所述,为了触发onPrepareOptionsMenu()
,您需要致电supportInvalidateOptionsMenu()
。
我正在这样做。但在我致电supportInvalidateOptionsMenu()
后,onCreateOptionsMenu()
被调用而不是onPrepareOptionsMenu()
。
据我了解,onCreateOptionsMenu()
只应在Activity
的开头调用一次。
我错过了什么吗?
答案 0 :(得分:4)
正确的周期是:
supportInvalidateOptionsMenu()
会导致菜单获取
重新创建,即onCreateOptionsMenu()
被调用。onCreateOptionsMenu()
时,onPrepareOptionsMenu()
被要求准备菜单。因此调用supportInvalidateOptionsMenu()
将始终导致onCreateOptionsMenu()
被调用。希望这有助于消除混乱。