Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
回收视图中的Android EditText_Android_Kotlin_Android Recyclerview_Android Edittext_Keyboard - Fatal编程技术网

回收视图中的Android EditText

回收视图中的Android EditText,android,kotlin,android-recyclerview,android-edittext,keyboard,Android,Kotlin,Android Recyclerview,Android Edittext,Keyboard,我想实现一个搜索。但不幸的是,编辑文本必须在回收器视图中。我有多种类型的物品。 当用户输入字母I刷新整个适配器时,搜索在本地完成。这意味着键盘消失,编辑文本失去焦点,因为这种不断的更新。 我设法修复了它显示键盘和焦点的编辑手动绑定 if (item.inEditableMode) { edit_text.requestFocus() showKeyboard(edit_text) } 但是编辑文本的效果并不像我想象的那么好。当用户快速输入或想

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

 if (item.inEditableMode) {
            edit_text.requestFocus()
            showKeyboard(edit_text)
 }
但是编辑文本的效果并不像我想象的那么好。当用户快速输入或想要清除输入时,会出现问题。 谢谢你的帮助

布局:

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


除此之外,即使必须这样做,也不要使用
notifyDataSetChanged()
通知整个
Adapter
,而是使用
notifyItemChanged(…)
-通知项目的范围,但不要使用
EditText
列出项目-它不会被重新绘制,所以键盘应该保持可见并将焦点保持在该字段上。但这不是一个好方法,您的
EditText
应该与舒尔的
RecyclerView
分开,如果您包括UI和问题的屏幕截图/屏幕记录,这将有助于解决为什么
编辑文本必须在RecyclerView
中?我已经发布了布局。它必须在回收器中,因为它必须是可滚动的。我添加了一个布局示例。除了一个适配器之外,我不知道如何用其他方式来表达它。我想编辑文本滚动和外部回收。编辑文本有时在列表上,有时不在列表上。但如果总是在第二位。好的,我解决了我的问题。当我处于编辑模式时,我不会从第三项更改为NotifyItemRange:)