单击 SearchView 的任何区域的侦听器

Listener for clicking on any area of ​the SearchView

我有一个 SearchView,我正在使用导航组件。我制定了这样的逻辑,当我从片段 A 单击键盘上的搜索按钮时,SearchView 文本会转移到片段 B。

而我在片段B中,片段A中SearchView的文本被传递到片段B中SearchView的输入字段,现在我需要当我点击SearchView的任何区域时,它会回到片段A,而 android: iconifiedByDefault = "false" ,怎么办?

我认为这个简单的代码应该可以工作。

在片段 B 中:

val searchView = view?.findViewById<SearchView>(R.id.yourSearchViewId)
searchView?.setOnClickListener { /* go back to fragment A */ }

已编辑: 让它与这两个听众一起工作:

/* this is invoked when you click on anything but the input field */
binding.searchView.setOnTouchListener { v, event -> // ignore all touch events
    /* go back to Fragment A */
    true
}
            
/* this is invoked when you click on the input field */
binding.searchView.setOnQueryTextFocusChangeListener { view, b ->
    /* go back to Fragment A */
}