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

Var*_*pta 5 react-native react-native-scrollview

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

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

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

Dan*_*dow 4

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

我还没有找到间距在模拟器中起作用但在真实设备上不起作用的确切原因。和时间有一定的关系。原始代码在输入焦点上设置超时,并尝试在 50 毫秒后向下滚动。将其增加到例如 500 毫秒,使其也可以在设备上运行,但我真的不喜欢添加我不理解的神奇超时。我更改了它,因此在焦点上我查找要滚动到的元素并存储引用。当 onKeyboardDidShow 触发时,我使用该引用。


归档时间:

查看次数:

12771 次

最近记录:

9 年,3 月 前