查询提交后,SearchView不会响应点击次数
我的应用包含一个标准的SearchView小部件。 从下面的代码可以看出,我设置了OnClickListener,OnCloseListener和OnQueryTextListener。
如果我点击SearchView,它最初会按照预期做出响应。 如果我输入文本并按下键盘上的搜索按钮,则OnQueryTextListener会正确触发,并按照searchView.setIconified(true)解除键盘锁定。 但是,如果我现在再次点击SearchView,则不会触发OnClickListener。 键盘仍然出现,并且该字段变得可编辑,但是我的代码不在OnClickListener中执行。
如果在此之后使用“X”图标关闭搜索视图,则一切恢复正常。 下次我点击SearchView时,我的听众被解雇了。
每次点击SearchView时,我都会执行额外的代码。
什么可能导致听众不在这个特定的情况下触发? 有什么我应该在OnQueryTextSubmit中做什么?
searchView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
filterLayout.setVisibility(View.VISIBLE);
searchView.setIconified(false);
System.out.println("on click");
}
});
searchView.setOnCloseListener(new SearchView.OnCloseListener() {
@Override
public boolean onClose() {
filterLayout.setVisibility(View.INVISIBLE);
return false;
}
});
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
searchView.setIconified(true);
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
return false;
}
});
我找到了这个问题的一半答案。 如果我在提交查询时清除了searchView的焦点,那么当用户下一次点击searchView时,OnQueryTextFocusChangeListener会获得一个调用。 它不完全回答我原来的问题,但对我的情况来说这是一个可以接受的解决方法。
链接地址: http://www.djcxy.com/p/92967.html上一篇: SearchView does not respond to clicks after query submit
下一篇: How to filter Recyclerview with SearchView on multiple parameters