Android 打开键盘时,将分离RecyclerView视图中的编辑文本

Android 打开键盘时,将分离RecyclerView视图中的编辑文本,android,android-edittext,android-recyclerview,Android,Android Edittext,Android Recyclerview,我正在尝试在RecyclerView中创建一个长表单,其中包含数量可变的EditText元素。该布局包括一个FrameLayout、一个表单节的RecyclerView,然后是CardView内部的嵌套RecyclerView,用于保存该节的所有表单元素(请参见下面的动画) 通常,当一个元素被聚焦时,键盘会出现,窗口会调整大小,视图会滚动,以便元素出现在键盘上方。我遇到的问题是,当在屏幕底部和部分顶部选择一个元素时,窗口会调整大小,RecyclerView会分离部分的视图,导致EditText在

我正在尝试在RecyclerView中创建一个长表单,其中包含数量可变的EditText元素。该布局包括一个FrameLayout、一个表单节的RecyclerView,然后是CardView内部的嵌套RecyclerView,用于保存该节的所有表单元素(请参见下面的动画)

通常,当一个元素被聚焦时,键盘会出现,窗口会调整大小,视图会滚动,以便元素出现在键盘上方。我遇到的问题是,当在屏幕底部和部分顶部选择一个元素时,窗口会调整大小,RecyclerView会分离部分的视图,导致EditText在尝试聚焦时不存在。这表现为键盘突然打开,然后在焦点返回到FrameLayout时关闭

我在活动中使用的是
android:windowSoftInputMode=“adjustResize”
,不想使用
adjustPan
,因为它不能提供最佳的用户体验

我曾尝试在EditText中添加一个click listener,然后向上滚动RecyclerView,这样当窗口调整大小时视图就不会被破坏,但这感觉有点不对劲,很难准确检测RecyclerView应该向上滚动多远。你也会有一些奇怪的跳跃。为了做到这一点,你必须关闭EditText的焦点,这也不理想,因为它破坏了导航和可访问性

尝试执行诸如
recyclerView.getRecycledViewPool().setMaxRecycledViews(0,节计数)之类的操作也不起作用,因为它不阻止视图分离

当为键盘调整窗口大小以使编辑文本接收焦点时,如何防止视图分离?

我通过

android.os.Handler().postDelayed({recycle.smoothScrollToPosition(0)},100)

单击edittext时使用InputMethodManager并打开keybord方法,如showSoftInput。使用edittext requestFocus。我面临着完全相同的问题,您解决了吗?我的字段太少,我只能使用静态布局文件(无RecyclerView)并绑定每个edittext字段。它没有我想要的灵活性,但很有效。很抱歉我也面临同样的问题。有人能告诉我怎么解决吗。。?