我的 Fragments 中的菜单项在我第一次访问时没有根据代码更改 Activity
Menuitems in my Fragments do not change according to the code for the first time I access Activity
我正在使用带片段的 ActionBarActivity。
我已经多次更改菜单项必须如何在操作栏中显示的实现。比如把onCreateOptionsMenu的local改成Activity,Fragments.
第一个片段不得显示菜单项,另一个片段必须再显示一个菜单项。其他片段正常显示菜单项。
问题:当我第一次进入 activity 时,菜单项没有显示在任何片段中。如果我旋转设备,一切正常。
在我的其他尝试中,行为更改为:当我第一次进入 activity 时,菜单项显示在所有片段中(第一个具有 setHasOptionsMenu(false);)。并且多了一个菜单项的片段不显示。
抱歉英语不好。
工作代码(旋转设备后):
第一个片段:
public void onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
int count = menu.size();
for (int i = 0; i < count; i++) {
menu.getItem(i).setVisible(false);
}
}
主要Activity:
public boolean onCreateOptionsMenu(Menu menu) {
for (int i = 0; i < itens.size(); i++) {
item = (Item) itens.get(i);
MenuItem mMenuItem = menu.add(0, i, i, item.getLabel()).setIcon(item.getImage());
MenuItemCompat.setShowAsAction(mMenuItem, MenuItemCompat.SHOW_AS_ACTION_IF_ROOM);
}
return super.onCreateOptionsMenu(menu);
}
我在构造函数中使用了它:
setHasOptionsMenu(false);
但是没用。然后我在构造函数中调用的其他方法中使用它以及代码来刷新片段,它现在可以工作了。
我正在使用带片段的 ActionBarActivity。
我已经多次更改菜单项必须如何在操作栏中显示的实现。比如把onCreateOptionsMenu的local改成Activity,Fragments.
第一个片段不得显示菜单项,另一个片段必须再显示一个菜单项。其他片段正常显示菜单项。
问题:当我第一次进入 activity 时,菜单项没有显示在任何片段中。如果我旋转设备,一切正常。
在我的其他尝试中,行为更改为:当我第一次进入 activity 时,菜单项显示在所有片段中(第一个具有 setHasOptionsMenu(false);)。并且多了一个菜单项的片段不显示。
抱歉英语不好。
工作代码(旋转设备后):
第一个片段:
public void onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
int count = menu.size();
for (int i = 0; i < count; i++) {
menu.getItem(i).setVisible(false);
}
}
主要Activity:
public boolean onCreateOptionsMenu(Menu menu) {
for (int i = 0; i < itens.size(); i++) {
item = (Item) itens.get(i);
MenuItem mMenuItem = menu.add(0, i, i, item.getLabel()).setIcon(item.getImage());
MenuItemCompat.setShowAsAction(mMenuItem, MenuItemCompat.SHOW_AS_ACTION_IF_ROOM);
}
return super.onCreateOptionsMenu(menu);
}
我在构造函数中使用了它:
setHasOptionsMenu(false);
但是没用。然后我在构造函数中调用的其他方法中使用它以及代码来刷新片段,它现在可以工作了。