代码之家  ›  专栏  ›  技术社区  ›  Adam Varhegyi

SearchView的onClose侦听器从不运行

  •  0
  • Adam Varhegyi  · 技术社区  · 6 年前

    有一个 SearchView (androidx,不支持lib)

    我添加了适当的听众,比如:

    @Override
        public boolean onQueryTextSubmit(String query) {
           Toaster.show(this, "onQueryTextSubmit!");
            return true;
        }
    
        @Override
        public boolean onQueryTextChange(String query) {
           Toaster.show(this, "onQueryTextChange!");
            return true;
        }
    
        @Override
        public boolean onClose() {
           Toaster.show(this, "onClose!");
           return true;
    }
    

    两者兼而有之 onQueryTextSubmit onQueryTextChange 效果很好。但是,当我单击 搜索框 ,搜索视图确实被清除,但是 onClose 侦听器从不运行。

    在官方文档中,它对setOnCloseListener的描述如下:

    “设置侦听器以在用户关闭SearchView时通知。”

    我想我用得很好, 但它并没有被触发。

    有什么想法吗?

    0 回复  |  直到 6 年前
        1
  •  0
  •   Adam Varhegyi    6 年前

    最后:

       View searchViewsCloseBtn = searchView.findViewById(R.id.search_close_btn);
            searchViewsCloseBtn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                  Toaster.show(myContext, "I hate this platform.");
                }
            });
    

    "R.id.search_close_btn" 是指 SearchView关闭btn。