我有一个搜索项目,工具栏上有另外两个项目。
点击搜索项目时,我希望其他2个项目消失,并在搜索栏关闭时重新出现。
这是我到目前为止所尝试的内容:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.actions_one_fragment, menu);
final MenuItem item = menu.findItem(R.id.action_search);
this.menu = menu;
final SearchView searchView = (SearchView) MenuItemCompat.getActionView(item);
searchView.setOnQueryTextListener(this);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
FragmentActivity activity = getActivity();
switch (item.getItemId()) {
case R.id.action_search:
menu.findItem(R.id.action_item_one).setVisible(false);
menu.findItem(R.id.action_item_two).setVisible(false);
default:
return super.onOptionsItemSelected(item);
}
这没有做任何事情。
答案 0 :(得分:0)
你应该隐藏/删除菜单项,如:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
FragmentActivity activity = getActivity();
switch (item.getItemId()) {
case R.id.action_search:
menu.removeItem(R.id.action_item_one);
menu.removeItem(R.id.action_item_two);
default:
return super.onOptionsItemSelected(item);
}
答案 1 :(得分:0)
如果您想在菜单及其项目显示之前对其进行更改,Android会说您应该使用onPrepareOptionsMenu回调。这是在Android显示菜单之前调用的,因此您可以对其进行更改(及其项目),并立即生效。
在您的示例中,您只是在选择搜索选项的情况下将菜单选项设置为不可见。这可能不足以满足你的要求。