最近在做一个项目中遇到过这个问题,很烦,在网上没有找到切实可行的办法,于是就自己想了一个办法,试了一下,居然成功了,所以分享出来。
 
在搜索框的监听事件中写这行代码:
 
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; } 
 
 
 
 
 
这样就可以完美解决黑色背景块的问题了,非常简单。