单击 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 */
}
我有一个 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 */
}