React Native:显示键盘后更新应用程序布局

我现在正在处理键盘在视图外部推动应用的常见问题。

android:windowSoftInputMode =“adjustResize”设置不起作用。

现在我按照这个键盘手动调整视图的大小:

keyboardWillShow(e) { setTimeout(()=> { this.keyboardOffset = e.endCoordinates.height; }, 500) } keyboardWillHide(e) { this.keyboardOffset = 0; } ///... const resultingHeight = windowHeight - this.keyboardOffset - Navigator.NavigationBar.Styles.General.TotalNavHeight; viewStyle = { height: resultingHeight }; 

这几乎工作。 但我的问题是,应用程序被推到视图之外,然后keyboardWillShow被解雇,并调整正确的大小,然后没有任何反应。 显示键盘后,Android不会更新布局。

在这里输入图像说明

编辑:SO上的其他post没有帮助,因为adjustResize设置不起作用,我使用react-native而不是原生的android。

Solutions Collecting From Web of "React Native:显示键盘后更新应用程序布局"

如果我记得, keyboardwillShowkeyboardWillHide 不会在Android上被解雇 。

这种行为应该是Android本地的,你有没有尝试设置windowSoftInputMode如下,而不是听事件?

 android:windowSoftInputMode="adjustPan" 

如果这不适合你,你可以看看KeyboardAvoidingView0.34新。 它似乎在解决你正在尝试完成的事情。

它是解决常见的需要摆脱虚拟键盘方式的视图问题的一个组件。 它可以根据键盘的位置自动调整其位置或底部填充。

KeyboardAvoidingView文件

KeyboardAvoidingView行为比我预期的要差,所以我创build了自己的解决scheme,用ScrollView来包装所有的应用程序(高度是在Dimensions帮助下设置的),然后在任何input点击 – 取决于input的位置(屏幕的下半部分 -在UIManager.measureTextInputState.currentlyFocusedField帮助下)我滚动视图或不 – 这会为你工作吗? (在很多情况下调整视图到较小的高度将不起作用(看起来不错)) – 我可以提供一些代码