我有一个RecyclerView,其中的列表项是EditText。当我滚动RecyclerView时,如果项目离开屏幕,EditText会失去焦点。所以,当EditText再次出现在滚动中时,焦点不会停留在EditText上。
我希望焦点仍然保持在相同的项目上。为此,我尝试在onBindViewHolder中存储聚焦项的位置并重新分配焦点。但这会减慢滚动速度。
我还尝试了使用ListView,但也存在另一种与焦点相关的问题。
我在SO和Google上搜索了很多资料,但总是找到像“android:focusableInTouchMode="true"”和“android:descendantFocusability="afterDescendants"”之类的答案,但都无效。
非常感谢您的任何帮助。
我希望焦点仍然保持在相同的项目上。为此,我尝试在onBindViewHolder中存储聚焦项的位置并重新分配焦点。但这会减慢滚动速度。
我还尝试了使用ListView,但也存在另一种与焦点相关的问题。
我在SO和Google上搜索了很多资料,但总是找到像“android:focusableInTouchMode="true"”和“android:descendantFocusability="afterDescendants"”之类的答案,但都无效。
非常感谢您的任何帮助。
RecyclerView
可以在滚动时清除焦点,即使没有调用onBindViewHolder
,因此我们不能再次设置焦点。在这种情况下,我们应该使用onViewAttachedToWindow
。 - CoolMind