繁体   English   中英

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

[英]Why does Android ViewPager2 looses focus when switching between tabs?

我的 Android 应用程序上有一个 ViewPager2。 其中一个页面包含一个 EditText 字段。

我遇到的场景如下:

  1. 将焦点放在文本字段上 -> 键盘显示
  2. 切换到另一个页面 -> 键盘关闭(该字段失去焦点)
  3. Go 回到上一个选项卡并再次将焦点设置在文本字段上 -> 该字段将获得焦点,但焦点会立即清除。 再次点击该字段将重新获得焦点。

我准备了一个小的演示应用程序来演示这个问题: https://github.com/hilaza/SwitchTabsBugDemo

我对其进行了调试,发现 ViewPager 清除了我页面的焦点,认为页面已被选中。 进一步调试它我发现它与 RecyclerView 的 didChildRangeChange 方法有关,该方法错误地假设某些东西已经改变。

有没有人碰巧知道为什么会这样,我该怎么做才能解决这个问题?

这是一个奇怪的错误,因为 Recycler 的行为。 不幸的是,无法解释为什么会发生这种情况,但可以肯定地知道这一行可能对您有所帮助:

pager.offscreenPageLimit = 1

或 Java 中的等效项。这可能会有所帮助,因为它会禁用某些 Recycler 行为。 如果有人更好地解释它会很高兴。 面对同样的问题并用这个解决了它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM