今天開發遇到了一個特別奇怪的bug,我所實現的需求是頂上一個Editext,下面是RecyclerView所實現的列表,要實現一個搜索過濾器的功能,這個功能只要在Adapter中實現Filterable接口,重寫getFilter()即可,相對比較簡單。
但是我當我實現完後卻遇到個問題,當我在Edittext中輸入值進行搜索時,搜索出內容時沒問題,繼續輸入,當搜索出沒內容時,軟鍵盤消失,並且無論如何點擊Edittext也無法彈出軟鍵盤。當我在代碼中強制顯示軟鍵盤時,雖然能顯示軟鍵盤,但是輸入無效。
這個問題我找了許久,終於找到了原因,在Adapter的佈局中使用了 自定義TextView,自定義TextView中重寫了
@Override
public boolean isFocused() {
return true;
}
導致出現這種問題,將這個自定義的TextView換成普通的或者去掉isFocused()方法即可。