3

当我将焦点放在 TextInput 框中并显示键盘时,如何自动向上滚动视图以使 TextInput 框不会隐藏在键盘后面?这个问题已经在 StackOverflow 上被问过几次,我在这里实现了解决方案,这是大多数答案中建议的通用解决方案。此解决方案在 iPhone 模拟器中运行良好,但不适用于实际手机。有没有其他人遇到过这个解决方案在实际手机上不起作用的问题?

添加此解决方案后我注意到的第二件事是,现在如果我专注于 TextInput 框并显示键盘,如果我按下按钮或尝试专注于不同的 TextInput 框,则始终使用第一次触摸来隐藏键盘并且该按钮未按下或其他 TextInput 框未聚焦。用户必须执行两次操作有点烦人。有没有其他人观察到这个问题?

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

4

1 回答 1

4

我假设您正在使用此解决方案。我遇到了同样的问题并做了一些调整(见要点)。我解决了你描述的两个问题。keyboardShouldPersistTaps 解决了您的第二个问题。

我还没有找到间距在模拟器中有效但在真实设备上无效的确切原因。它与时间有关。原始代码设置输入焦点超时,并在 50 毫秒后尝试向下滚动。将其增加到例如 500 毫秒使其也可以在设备上运行,但我真的不喜欢添加我不理解的魔法超时。我改变了它,所以 onFocus 我查找要滚动到的元素并存储参考。当 onKeyboardDidShow 触发时,我使用参考。

于 2016-05-28T09:20:55.413 回答