【问题标题】:EditText in RecyclerView view is detached when keyboard openedRecyclerView 视图中的 EditText 在键盘打开时分离
【发布时间】:2017-06-02 23:04:54
【问题描述】:

我正在尝试在 RecyclerView 中创建具有可变数量的 EditText 元素的长表单。布局由 FrameLayout、表单部分的 RecyclerView 和 CardView 内的嵌套 RecyclerView 组成,用于保存该部分的所有表单元素(参见下面的动画)。

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

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

我尝试向 EditText 添加一个点击侦听器,然后向上滚动 RecyclerView 以便在窗口调整大小时视图不会被破坏,但这感觉很糟糕,而且很难准确检测 RecyclerView 应该向上多远滚动。你也会得到一些奇怪的跳跃。为此,您必须关闭 EditText 的可聚焦性,这也不理想,因为它破坏了导航和可访问性。

尝试执行recyclerView.getRecycledViewPool().setMaxRecycledViews(0, SECTION_COUNT); 之类的操作也不起作用,因为它不会阻止视图被分离。

当针对键盘调整窗口大小以使 EditText 获得焦点时,如何防止视图分离?

【问题讨论】:

  • 单击编辑文本时使用 InputMethodManager 并打开诸如 showSoftInput 之类的键盘方法。使用 edittext requestFocus。
  • 我也遇到了同样的问题,你解决了吗?
  • 我只有很少的字段,我可以只使用静态布局文件(没有 RecyclerView)并绑定每个 EditText 字段。它没有我想要的灵活性,但可以工作。对不起!
  • 我也面临同样的问题。谁能告诉如何解决它..?

标签: android android-edittext android-recyclerview


【解决方案1】:

我用 by 解决了这个问题

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-25
    相关资源
    最近更新 更多