为什么在切换选项卡时,Android ViewPager2 会失去焦点?

3
我在我的Android应用程序中有一个ViewPager2。其中一个页面包含一个EditText字段。
我遇到的情况如下:
  1. 将焦点设置在文本字段上 -> 键盘显示
  2. 切换到另一页 -> 键盘消失(该字段失去焦点)
  3. 返回到上一个选项卡并再次将焦点设置在文本字段上 -> 该字段将获得焦点,但立即焦点会清除。再次点击该字段将重新获得焦点。
我准备了一个小型演示应用程序来演示这个问题:https://github.com/hilaza/SwitchTabsBugDemo 我进行了调试,并发现ViewPager从我的页面中清除了焦点,认为选择了一个页面。进一步调试后,我发现这与RecyclerView的didChildRangeChange方法有关,它错误地假定已更改了某些内容。
有没有人知道为什么会这样发生,以及我可以做什么来解决这个问题?

你有没有找到解决问题的方法?我也遇到了同样的问题。 - Miriana Itani
1个回答

0

这是一个由于Recycler行为而发生的奇怪的bug。不幸的是,无法解释为什么会发生,但可以肯定的是,这一行可能会对您有所帮助:

pager.offscreenPageLimit = 1

或者在Java中等效的方式。这可能有所帮助,因为它禁用了一些Recycler的行为。如果有人能更好地解释一下,我会很高兴的。我曾经遇到过同样的问题,并通过这种方法解决了它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接