我的问题是,每次片段恢复时,如何防止以编程方式创建的工具栏menuItem(带子菜单的菜单)被xml布局覆盖。 我想创建我的昂贵的工具栏menuitem只在第一次创建片段而不是恢复时。
我在onCreateOptionsMenu()中填充我的工具栏并存储菜单项的实例。
private MenuItem menuItem;
私人SubMenu expessiveSubmenu;
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_layout, menu);
menuItem= menu.findItem(R.id.menuItem);
}
当异步加载器完成时,将填充menuItem。
@Override
public void onLoadFinished(Loader<> loader, Data data) {
//Expensive call
expensiveSubmenu= makeExpensiveSubMenu(menuItem, data);
}
现在菜单已完全填充并在工具栏中可见,我还有一个子菜单实例。
因为onCreateOptionsMenu()被称为evertime,片段将恢复,我的菜单被xml布局覆盖,我必须再次创建昂贵的子菜单。像menu.addSubmenu(菜单)这样的方法可以解决我的需求,但我找不到。任何想法都将不胜感激。