如何检测searchView上的点击?我尝试过使用setOnClickListener、setOnSearchClickListener、setOnFocusChangedListener,但都无济于事。问题似乎只在于单击文本框。如果我单击文本框之外的任何地方,onClickListener都会触发,但如果单击文本框内部,则不会触发。我试图解决的问题是,如果用户点击任何地方,我需要关闭a。但我不知道如何处理searchview。
v64noz0r1#
我已经找到了解决问题的方法。虽然有点像黑客,但它确实有效。您必须从searchView中获取editText,并将OnClickListener设置为它
int id = searchView.getContext().getResources().getIdentifier("android:id/search_src_text", null, null); EditText editText = (EditText) searchView.findViewById(id); editText.setOnClickListener(listener);
kninwzqo2#
试试这个:
searchView = (SearchView)findViewById(R.id.searchView); searchView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { searchView.setIconified(false); } });
sqserrrh3#
尝试将app:iconifiedByDefault="false"添加到布局XML中的SearchView标记。
app:iconifiedByDefault="false"
pw9qyyiw4#
类似问题的答案:How to detect if SearchView is expanded?
searchView.setOnQueryTextFocusChangeListener { _ , hasFocus -> if (hasFocus) { // searchView expanded } else { // searchView not expanded } }
4条答案
按热度按时间v64noz0r1#
我已经找到了解决问题的方法。虽然有点像黑客,但它确实有效。您必须从searchView中获取editText,并将OnClickListener设置为它
kninwzqo2#
试试这个:
sqserrrh3#
尝试将
app:iconifiedByDefault="false"
添加到布局XML中的SearchView标记。pw9qyyiw4#
类似问题的答案:How to detect if SearchView is expanded?