java - 展开的 SearchView 上的 onClickListener
问题描述
我只是想检测 SearchView 是否被点击。像 setOnClickListener 和 setOnSearchClickListener 这样的普通监听器只检测到 SearchView 左侧的 Search 图标上的点击。但是无论用户在何处单击工具栏,我都想检测单击。
我尝试了以下方法:
setOnSearchClickListener:
searchView = findViewById(R.id.search_bar);
searchView.setOnSearchClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i("###", "clicked");
}
});
setOnClickListener:
searchView = findViewById(R.id.search_bar);
searchView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i("###", "clicked");
}
});
setOnTouchListener:
searchView = findViewById(R.id.search_bar);
searchView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
Log.i("###", "Clicked");
return false;
}
});
以上都不起作用。我知道我可以简单地将 setOnQueryTextListener 与 onQueryTextChange 一起使用,但这在我的特定情况下不起作用,我想在用户甚至开始输入 SearchView 之前检测点击。而且我还想扩展工具栏(iconified = false)。
这是我的 SearchView XML:
<androidx.appcompat.widget.SearchView
android:id="@+id/search_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:iconifiedByDefault="false"
app:defaultQueryHint="Search here" />
网上好像没有这个问题的答案。
解决方案
推荐阅读
- python - 如何在 docker 容器中使用本地文件?
- testing - 如何使用请求在 JEST 中测试异步调用而不使用模拟和等待反应钩子测试库
- angular - Firebase 经过身份验证的用户,但没有权限
- python - 无法在 PyQt5 中打印点击的行
- excel - 如何拒绝 application.inputbox 中的符号
- c++ - 了解 Getline 函数
- webpack - Livereload 服务器导致 ERR:CONNECTION REFUSED
- javascript - 使用条件 mongodb 在数组中检索对象
- php - 数据库是完整的问号而不是mysql中的俄语单词
- c++ - 定义“.h”文件的相对路径(C++/Arduino)