最近在做一个项目中遇到过这个问题,很烦,在网上没有找到切实可行的办法,于是就自己想了一个办法,试了一下,居然成功了,所以分享出来。
在搜索框的监听事件中写这行代码:
mAdapter.getFilter().filter(newText);不要用ListView的setFilterText方法
// 当搜索框内内容发生改变时执行
@Override
public boolean onQueryTextChange(String newText) {
if (TextUtils.isEmpty(newText)) {
arsAdapter.getFilter().filter("");// 必须要有此句代码
lv_address.clearTextFilter(); // 清除ListView的过滤
} else {
/*
* 去除serchview控件默认的黑色背景块
* 不能用ListView的setFilterText方法,用mAdapter.getFilter().filter(
* newText)代替
*/
arsAdapter.getFilter().filter(newText);
// lv_inform.setFilterText(newText); // 设置ListView的过滤关键词
}
return true;
}
这样就可以完美解决黑色背景块的问题了,非常简单。