如何检测 SearchView 上任意位置的点击
How to detect a click anywhere on a SearchView
如何检测对 searchView 的点击?
我尝试过使用 setOnClickListener、setOnSearchClickListener、setOnFocusChangedListener,但都无济于事。
问题似乎只是点击文本框。如果我点击文本框外的任何地方 onClickListener 触发,但如果点击文本框内则不会。
我要解决的问题是,如果用户点击任何地方,我需要关闭一个。但是我不知道如何处理 SearchView。
我找到了解决问题的方法。
这有点骇人听闻,但它确实有效。您必须从 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);
试试这个:
searchView = (SearchView)findViewById(R.id.searchView);
searchView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
searchView.setIconified(false);
}
});
如何检测对 searchView 的点击?
我尝试过使用 setOnClickListener、setOnSearchClickListener、setOnFocusChangedListener,但都无济于事。
问题似乎只是点击文本框。如果我点击文本框外的任何地方 onClickListener 触发,但如果点击文本框内则不会。
我要解决的问题是,如果用户点击任何地方,我需要关闭一个。但是我不知道如何处理 SearchView。
我找到了解决问题的方法。 这有点骇人听闻,但它确实有效。您必须从 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);
试试这个:
searchView = (SearchView)findViewById(R.id.searchView);
searchView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
searchView.setIconified(false);
}
});