Android 如何在片段生命周期中仅调用一次OnCreateOptions菜单
Android 如何在片段生命周期中仅调用一次OnCreateOptions菜单,android,android-fragments,android-menu,Android,Android Fragments,Android Menu,oncreateoptions菜单每次恢复Fragment时都会被调用。当创建片段时,是否有任何解决方案可以只调用一次创建选项菜单 @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.search_menu, menu); final MenuItem searchItem = menu.findI
oncreateoptions菜单
每次恢复Fragment
时都会被调用。当创建片段时,是否有任何解决方案可以只调用一次创建选项菜单
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.search_menu, menu);
final MenuItem searchItem = menu.findItem(R.id.action_search);
final SearchView searchView = (SearchView) searchItem.getActionView();
searchView.setQueryHint(getString(R.string.search_hint));
searchItem.setOnActionExpandListener(new MenuItem.OnActionExpandListener() {
@Override
public boolean onMenuItemActionExpand(MenuItem item) {
return true;
}
@Override
public boolean onMenuItemActionCollapse(MenuItem item) {
showContacts();
return true;
}
});
}
它与生命周期挂钩,因此将调用该方法。这并不意味着每次都需要调用代码。设置类级布尔值以确保代码只运行一次。或者检查“getOnActionExpandListener”
if(searchItem.getOnActionExpandListener() == null) {
searchItem.setOnActionExpandListener.......
}
Android菜单不是这样工作的——每次菜单失效时,整个菜单都会被丢弃,并创建一个新菜单,这就需要重新调用
onCreateOptions菜单()
。