今天开发遇到了一个特别奇怪的bug,我所实现的需求是顶上一个Editext,下面是RecyclerView所实现的列表,要实现一个搜索过滤器的功能,这个功能只要在Adapter中实现Filterable接口,重写getFilter()即可,相对比较简单。
但是我当我实现完后却遇到个问题,当我在Edittext中输入值进行搜索时,搜索出内容时没问题,继续输入,当搜索出没内容时,软键盘消失,并且无论如何点击Edittext也无法弹出软键盘。当我在代码中强制显示软键盘时,虽然能显示软键盘,但是输入无效。
这个问题我找了许久,终于找到了原因,在Adapter的布局中使用了 自定义TextView,自定义TextView中重写了
@Override
public boolean isFocused() {
return true;
}
导致出现这种问题,将这个自定义的TextView换成普通的或者去掉isFocused()方法即可。