查询提交后,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