我发现一些关于 android 菜单图标的奇怪行为。当我通过 onCreateOptionsMenu 添加图标时
setVisible(false)
图标不会显示,如果我打电话也不会出现
setVisible(true)
在以后的电话中。看我的例子:
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
...
entryOne = menu.add("menuOne");
entryOne.setIcon(...);
entryOne.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
entryOne.setVisible(false);
entryTwo = menu.add("menuTwo");
entryTwo.setIcon(...);
entryTwo.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
entryTwo.setVisible(false);
// entryThree = menu.add("menuThree");
// entryThree.setIcon(...);
// entryThree.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
// entryThree.setVisible(true);
super.onCreateOptionsMenu(menu, inflater);
}
...
public void onItemClick(...) {
...
entryOne.setVisible(true);
entryTwo.setVisible(true);
...
}
当然我设置
setHasOptionsMenu(true);
奇怪的是,当我取消注释onCreateOptionsMenu中的最后几行时,一切正常。
<uses-sdk android:minSdkVersion="11"
android:targetSdkVersion="14" />
这是一个错误还是我做错了什么?