React Native:当 android:windowSoftInputMode 设置为“adjustNothing”时,keyboardDidShow 侦听器不会触发

rup*_*pii 7 android react-native react-native-android

android:windowSoftInputMode="adjustNothing" 在 AndroidManifest.xml 中设置

向键盘添加了侦听器:

componentDidMount() 
    this.keyboardDidShowListener = Keyboard.addListener('keyboardDidShow', this._keyboardDidShow);
  }
Run Code Online (Sandbox Code Playgroud)

定义函数:

_keyboardDidShow = () => {  
    console.log('_keyboardDidShow called');
}
Run Code Online (Sandbox Code Playgroud)

_keyboardDidShow永远不会被调用 when android:windowSoftInputMode="adjustNothing"。当android:windowSoftInputMode="adjustResize"或时它工作正常android:windowSoftInputMode="adjustPan"

从文档:

请注意,如果您将 android:windowSoftInputMode 设置为 adjustResize 或 adjustNothing,则只有 keyboardDidShow 和 keyboardDidHide 事件在 Android 上可用。keyboardWillShow 和 keyboardWillHide 通常在 Android 上不可用,因为没有原生的对应事件。

键盘参考

我看过:

https://github.com/facebook/react-native/issues/2852(看起来像一个开放的错误)
React Native 键盘事件不适用于 android:windowSoftInputMode="adjustNothing"(解决方案:将 windowSoftInputMode 设置为 adjustPan)

我不能android:windowSoftInputMode设置其他任何东西adjustNothing

有人有解决此问题的解决方案或解决方法吗?
.
.
.
2020 年 1 月更新:文档已更新为

请注意,如果您将 android:windowSoftInputMode 设置为 adjustResize,则只有 keyboardDidShow 和 keyboardDidHide 事件在 Android 上可用。如果您将 android:windowSoftInputMode 设置为 adjustNothing,则 Android 上将没有可用的事件。keyboardWillShow 和 keyboardWillHide 通常在 Android 上不可用,因为没有原生的对应事件。