当键盘以 react-native 显示时自动向上滚动视图

Automatically scroll the view up when keyboard is shown in react-native

当我聚焦在 TextInput 框中并且显示键盘时,如何自动向上滚动视图,这样 TextInput 框就不会隐藏在键盘后面? 这个问题已在 Whosebug 上被问过几次,我实施了解决方案 here,这是大多数答案中建议的通用解决方案。此解决方案在 iPhone 模拟器中运行良好,但不适用于实际 phone。有没有其他人遇到过这个解决方案对实际 phone 不起作用的问题?

添加此解决方案后我注意到的第二件事是,现在如果我将焦点放在 TextInput 框中并显示键盘,如果我按下按钮或尝试将焦点放在不同的 TextInput 框中,第一次触摸总是用于隐藏键盘和按钮未按下或其他 TextInput 框未获得焦点。用户必须执行两次操作有点烦人。还有其他人观察到这个问题吗?

如果您对如何解决这些问题有任何意见,请告诉我?

我假设您正在使用 this solution. I ran into the same problem and made some adjustments (see gist)。我解决了你描述的两个问题。 keyboardShouldPersistTaps 解决了你的第二个问题。

我还没有找到间距在模拟器中起作用但在真实设备上不起作用的确切原因。这与时机有关。原始代码在输入焦点上设置超时,并在 50 毫秒后尝试向下滚动。将它增加到例如 500ms 也可以让它在设备上工作,但我真的不喜欢添加我不理解的魔法超时。我更改了它,所以我在 Focus 上查找要滚动到的元素并存储一个引用。当 onKeyboardDidShow 触发时,我使用引用。