java EditText在RecyclerView中失去了对滚动的关注
我有一个RecyclerView
,它的列表项是EditText
。当我滚动RecyclerView
时,当项目离开屏幕时,EditText
会失去焦点。因此,当EditText
返回滚动屏幕时,焦点不会停留在EditText
上
我希望重点保持在同一个项目上。为此,我还尝试将项目的position
存储在焦点上,并在onBindViewHolder
中重新分配焦点。但这会减慢滚动速度
我也用ListView
试过了,但是还有另一种focus
相关的问题。集中注意力
我在网上搜索了很多,在谷歌上搜索了很多。但总是能找到像安卓:focusableInTouchMode="true"
和安卓:descendantFocusability="afterDescendants"
这样不起作用的答案
任何帮助都将不胜感激
# 1 楼答案
正如Elan Hamburger所写,我们应该存储位置,并在滚动后某个项目出现在屏幕上时将其恢复
问题是我们不知道该项目何时出现和消失。当我们有几个
ViewHolder
时,甚至不能再次调用onBindViewHolder
。在这种情况下,我们应该使用onViewAttachedToWindow
和onViewDetachedFromWindow
来了解项目在屏幕上出现和消失的时间# 2 楼答案
尝试使用下一个:
当使用垂直方向的GridLayoutManager时,它帮助了我
此选项会自行滚动列表,以便在滚动时,可以看到RecyclerView中下一个项目的边缘,从而不会丢失焦点
但是,如果需要快速滚动(如果该列没有时间加载,并且需要进一步滚动),则这并没有帮助
我在这里找到了答案Scrolling recyclerview from the middle item