Android RecyclerView 中的 EditText

Android EditText in RecyclerView

我想执行搜索。但不幸的是,编辑文本必须在回收站视图中。我有多种类型的物品。 当用户输入一个字母时,我会刷新整个适配器,搜索是在本地完成的。这意味着键盘消失,编辑文本失去焦点,因为这种不断更新。 我设法修复它显示键盘并在绑定时手动聚焦编辑。

 if (item.inEditableMode) {
            edit_text.requestFocus()
            showKeyboard(edit_text)
 }

但是编辑文本效果不如我预期。当用户快速键入或想要清除输入时,就会出现问题。 感谢您的帮助。

布局:

“不幸的是,编辑文本必须在回收站视图中”- 我打赌它不一定是 RecyclerView 的一部分,而不是 Adapter 列表项 View 的一部分。更好地检查您的布局架构,而不是使用隐藏显示(闪烁)键盘发布的解决方法

除此之外,即使必须如此,也不要使用 notifyDataSetChanged() 通知整个 Adapter,而是使用 notifyItemChanged(...) - 通知项目的范围,但不通知列表项目EditText - 它不会被重新绘制,所以键盘应该保持可见并且焦点保持在该字段上。这仍然不是一个好方法,你的 EditText 几乎应该与 RecyclerView 分开