onCreateOptionsMenu 中的 expandActionView 从操作栏中永久删除或隐藏其他菜单项
expandActionView in onCreateOptionsMenu removes or hides other menu items from action bar permanently
我在操作栏中有一个 searchView
,当用户在 searchView
中进行查询,然后旋转设备时,我在 searchView
中将查询设置为 onCreateOptionsMenu
并展开 searchView
和 menuItem.expandActionView()
因为 searchView.setIconified(false)
对我没有影响,但是调用 menuItem.expandActionView()
会删除或隐藏其他菜单项 即使在用户关闭 searchView 后其他菜单项仍然隐藏! !在用户关闭 searcheView 后,即使 searchView 图标也没有显示在操作栏 其他菜单项中,并且 serachView
已将 showAsAction
设置为 ifRoom
我很惊讶,因为当用户通过单击搜索图标展开操作视图时没有问题,但是当我调用 expandActionView
时我遇到了这个问题!
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main_menu, menu);
final MenuItem searchMenuItem = menu.findItem(R.id.searchMenuItem);
searchView = (SearchView) searchMenuItem.getActionView();
searchView.setOnQueryTextListener(this);
searchView.setOnCloseListener(this);
searchView.setSubmitButtonEnabled(false);
searchView.setIconifiedByDefault(true);// <-- this line has no effect even when using false !!
if(initialQuery != null) {
searchView.setIconified(false);// <-- this line has no effect !!!
searchView.setQuery(initialQuery, true);
searchMenuItem.expandActionView();//<-- this line expands searchView but hides other menu items!!
searchView.setQuery(initialQuery, true);
}
return super.onCreateOptionsMenu(menu);
}
我已经使用并为我工作的解决方案是使用 always
或 never
而不是 ifRoom
for showAsAction
我在操作栏中有一个 searchView
,当用户在 searchView
中进行查询,然后旋转设备时,我在 searchView
中将查询设置为 onCreateOptionsMenu
并展开 searchView
和 menuItem.expandActionView()
因为 searchView.setIconified(false)
对我没有影响,但是调用 menuItem.expandActionView()
会删除或隐藏其他菜单项 即使在用户关闭 searchView 后其他菜单项仍然隐藏! !在用户关闭 searcheView 后,即使 searchView 图标也没有显示在操作栏 其他菜单项中,并且 serachView
已将 showAsAction
设置为 ifRoom
我很惊讶,因为当用户通过单击搜索图标展开操作视图时没有问题,但是当我调用 expandActionView
时我遇到了这个问题!
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main_menu, menu);
final MenuItem searchMenuItem = menu.findItem(R.id.searchMenuItem);
searchView = (SearchView) searchMenuItem.getActionView();
searchView.setOnQueryTextListener(this);
searchView.setOnCloseListener(this);
searchView.setSubmitButtonEnabled(false);
searchView.setIconifiedByDefault(true);// <-- this line has no effect even when using false !!
if(initialQuery != null) {
searchView.setIconified(false);// <-- this line has no effect !!!
searchView.setQuery(initialQuery, true);
searchMenuItem.expandActionView();//<-- this line expands searchView but hides other menu items!!
searchView.setQuery(initialQuery, true);
}
return super.onCreateOptionsMenu(menu);
}
我已经使用并为我工作的解决方案是使用 always
或 never
而不是 ifRoom
for showAsAction