gpt4 book ai didi

android - RecyclerView View 中的 EditText 在键盘打开时分离

转载 作者:行者123 更新时间:2023-12-03 17:16:40 26 4
gpt4 key购买 nike

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

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

RecyclerView Focus Issue

我正在使用 android:windowSoftInputMode="adjustResize"在我的 Activity 中,不想使用 adjustPan因为它没有提供最好的用户体验。

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

尝试做类似 recyclerView.getRecycledViewPool().setMaxRecycledViews(0, SECTION_COUNT); 的事情也不起作用,因为它不会阻止 View 被分离。

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

最佳答案

我解决了这个问题

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

关于android - RecyclerView View 中的 EditText 在键盘打开时分离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44338543/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com