gpt4 book ai didi

调用 invalidateOptionsMenu() 时 Android SearchView 不工作

转载 作者:行者123 更新时间:2023-11-29 19:09:29 25 4
gpt4 key购买 nike

我想在搜索 View 展开时隐藏一些菜单项,所以这是我使用的代码:

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
menu.findItem(R.id.action_refresh).setVisible(!isSearchOpen)
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
MenuItem searchMenuItem = menu.findItem(R.id.action_search)
SearchView searchView = searchMenuItem.getMenu();

searchView.setOnQueryTextListener(this);

MenuItemCompat.setOnActionExpandListener(searchMenuItem, new MenuItemCompat.OnActionExpandListener() {
@Override
public boolean onMenuItemActionCollapse(MenuItem item) {
isSearchOpen = true;
invalidateOptionsMenu();

return true;
}

@Override
public boolean onMenuItemActionExpand(MenuItem item) {
isSearchOpen = false;
invalidateOptionsMenu();
return true;
}
});
}

现在这段代码按预期工作,除了一个问题:当我单击搜索按钮时,SearchView 没有出现。我不知道是什么问题。我在堆栈溢出上搜索了类似的问题,但没有找到解决该问题的任何答案,因此欢迎任何帮助

最佳答案

您可以尝试这种方式来隐藏和显示其他选项菜单:-

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.search_menu, menu);
final MenuItem delMenu = menu.findItem(R.id.action_delete);
final MenuItem editMenu = menu.findItem(R.id.action_edit);
MenuItem searchMenu = menu.findItem(R.id.action_search);
SearchView searchView = (SearchView) searchMenu.getActionView();

searchView.setOnQueryTextFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean b) {
if(b) {
delMenu.setVisible(false);
editMenu.setVisible(false);
}
}
});
searchView.setOnCloseListener(new SearchView.OnCloseListener() {
@Override
public boolean onClose() {
delMenu.setVisible(true);
editMenu.setVisible(true);
return false;
}
});
return true;
}

关于调用 invalidateOptionsMenu() 时 Android SearchView 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45880499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com