需要为按钮确定正确的 searchVIew 监听器方法以准备关闭 searchView
Need to identify correct searchVIew Listener method for button to prepare to close searchView
需要获得正确的 searchView 侦听器方法来放置我的代码,以更改我擦除键入的搜索结果(圆形 X)按钮,使其成为完全关闭 searchView 的白色(X)按钮。
这是我在操作栏中创建 searchView 的代码:
@Override
public boolean onCreateOptionsMenu(final Menu menu) {
MenuItem item =menu.findItem(menuSearch);
final SearchView searchView = (SearchView) item.getActionView();
在第一张图片中,当我点击搜索图标时,会弹出以下内容以及我的代码:
searchView.setOnSearchClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ImageView searchClose = searchView.findViewById(android.support.v7.appcompat.R.id.search_close_btn);
searchClose.setImageResource(R.drawable.ic_close_black_24dp);
}
});
因此您可以单击上面的 (X) 并关闭 searchView。或者您可以开始在键盘上键入以进行搜索,您会得到以下信息:现在请注意 (X) 变成了一个(圆形 X),这意味着删除您在键盘上键入的内容。
这是上面的代码:
@Override
public boolean onQueryTextChange(String newText) {
ImageView searchCancel = searchView.findViewById(android.support.v7.appcompat.R.id.search_close_btn);
searchCancel.setImageResource(R.drawable.ic_cancel_black_24dp);
return false;
}
});
现在,如果我再次单击那个(圆形 X),我需要它回到原来的白色 (X) 才能完全关闭 searchView。所以我需要再次使用 R.drawable.ic_close_black_24dp 的第一个代码。
它不适用于以下方法:
searchView.setOnQueryTextListener
searchView.setOnCloseListener
我知道正确的代码,只是缺少正确的 searchView Listener 方法。单击(圆形 X)时,我使用哪种监听器方法将(圆形 X)变回白色(X)。
(我希望我解释得很透彻,如果没有,我希望我的 searchView 像在 Snapchat 中一样工作,你会看到它使用 2 个不同的 X,一个用于删除用户键入的内容,一个用于关闭 searchView完全)。
所以我只需要正确的 Listener 方法来使用而不是方法内部的代码。
onQueryTextChange()
在使用零长度字符串取消输入时调用。本质上,您要显示的一种类型 "X" 是长度为零长度,否则为另一种类型。像这样:
@Override
public boolean onQueryTextChange(String newText) {
ImageView searchCancel =
searchView.findViewById(android.support.v7.appcompat.R.id.search_close_btn);
searchCancel.setImageResource(
(newText.length() > 0)
? R.drawable.ic_cancel_black_24dp:
: R.drawable.[the other type of "X"]);
return false;
}
需要获得正确的 searchView 侦听器方法来放置我的代码,以更改我擦除键入的搜索结果(圆形 X)按钮,使其成为完全关闭 searchView 的白色(X)按钮。
这是我在操作栏中创建 searchView 的代码:
@Override
public boolean onCreateOptionsMenu(final Menu menu) {
MenuItem item =menu.findItem(menuSearch);
final SearchView searchView = (SearchView) item.getActionView();
在第一张图片中,当我点击搜索图标时,会弹出以下内容以及我的代码:
searchView.setOnSearchClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ImageView searchClose = searchView.findViewById(android.support.v7.appcompat.R.id.search_close_btn);
searchClose.setImageResource(R.drawable.ic_close_black_24dp);
}
});
因此您可以单击上面的 (X) 并关闭 searchView。或者您可以开始在键盘上键入以进行搜索,您会得到以下信息:现在请注意 (X) 变成了一个(圆形 X),这意味着删除您在键盘上键入的内容。
这是上面的代码:
@Override
public boolean onQueryTextChange(String newText) {
ImageView searchCancel = searchView.findViewById(android.support.v7.appcompat.R.id.search_close_btn);
searchCancel.setImageResource(R.drawable.ic_cancel_black_24dp);
return false;
}
});
现在,如果我再次单击那个(圆形 X),我需要它回到原来的白色 (X) 才能完全关闭 searchView。所以我需要再次使用 R.drawable.ic_close_black_24dp 的第一个代码。
它不适用于以下方法:
searchView.setOnQueryTextListener
searchView.setOnCloseListener
我知道正确的代码,只是缺少正确的 searchView Listener 方法。单击(圆形 X)时,我使用哪种监听器方法将(圆形 X)变回白色(X)。
(我希望我解释得很透彻,如果没有,我希望我的 searchView 像在 Snapchat 中一样工作,你会看到它使用 2 个不同的 X,一个用于删除用户键入的内容,一个用于关闭 searchView完全)。
所以我只需要正确的 Listener 方法来使用而不是方法内部的代码。
onQueryTextChange()
在使用零长度字符串取消输入时调用。本质上,您要显示的一种类型 "X" 是长度为零长度,否则为另一种类型。像这样:
@Override
public boolean onQueryTextChange(String newText) {
ImageView searchCancel =
searchView.findViewById(android.support.v7.appcompat.R.id.search_close_btn);
searchCancel.setImageResource(
(newText.length() > 0)
? R.drawable.ic_cancel_black_24dp:
: R.drawable.[the other type of "X"]);
return false;
}