我在Expo应用程序上使用KeyboardAvoidingView时遇到困难。我希望满足以下要求:
- 当键盘打开时,视图应该向上滚动,以便用户始终看到输入,这就是KeyboardAvoidingView的用途。
- 当键盘打开时,用户应能够滚动整个视图。
- 不应该有任何奇怪的图形故障。
- 它应该在iOS和Android上工作。
我尝试了100种不同的解决方案,但都没有得到令人满意的结果。由于我使用Expo,我无法使用https://github.com/APSL/react-native-keyboard-aware-scroll-view,因为它需要对AndroidManifest进行更改。
使用KeyboardAvoidingView,我发现最好的解决方案是在iOS上放behavior =“padding”,而在Android上则完全没有行为,不过,还是有一个问题:当键盘打开时,用户可以滚动的空间是有限的。2因此,当一个视图是一个有很多输入的长窗体时,用户不关闭键盘,滚动,然后再打开键盘,就不能到达窗体的底部。
我还有一个问题,键盘在输入焦点后打开,但我想留一些额外的空间,因为我的输入有一些填充,使用keyboardVerticalOffset
属性对此没有影响。
在阅读了几十篇关于这个主题的帖子后,似乎没有人真正理解KeyboardAvoidingViews是如何工作的,以及如何有效地使用它们。甚至在官方的React Native文档中,也提到“Android和iOS都与这个 prop 交互[(行为)]不同。Android在完全没有行为 prop 的情况下可能会表现得更好,而iOS则相反”,好像他们并不真正理解这个属性是什么。
是否有人了解如何使用KeyboardAvoidingView以及如何使用它以满足4个要求?
4条答案
按热度按时间lfapxunr1#
我们用这个
我们没有遇到任何四个问题
4c8rllxm2#
你试过react-native-keyboard-spacer的KeyboardSpacer吗?我用react-native-elements使用它,效果很好!你唯一要小心的是当你想使用滚动视图的时候。只要确保你把滚动视图放在外面就行了!
mpgws1up3#
在IOS中,我不需要KeyboardAvoidingView,我只使用自动调整键盘插入
mitkmikd4#
我不明白键盘避免视图的问题
它对我很有效: