android - React Native:当 android:windowSoftInputMode 设置为“adjustNothing”时,keyboardDidShow 侦听器未触发
问题描述
我已经
android:windowSoftInputMode="adjustNothing"
在 AndroidManifest.xml 中设置了
为键盘添加了监听器:
componentDidMount()
this.keyboardDidShowListener = Keyboard.addListener('keyboardDidShow', this._keyboardDidShow);
}
定义函数:
_keyboardDidShow = () => {
console.log('_keyboardDidShow called');
}
但从_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 上不可用,因为没有原生的对应事件。
解决方案
推荐阅读
- r - 减少 RMarkdown 中 plot_grid 上方和下方的空白
- python - 我可以使用 IPython embed() 来更改函数的状态吗?
- cassandra - 如何在 Cassandra 中建模天气数据?
- officer - 在官员中插入自定义目录的最佳方法
- html - 如何在焦点上删除textarea元素内的奇怪轮廓
- reactjs - Next.js 在 getServerSideProps 中使用“ReferenceError”导入函数错误
- filter - 如何使用 do 和 "by" 重写这个不推荐使用的表达式,以及 "groupby" (Julia)
- node.js - 对 BeagleBone 进行编程以打开 LED,出现 NodeJS 错误
- hbase - 在 HBase 中自动分发数据(无需预拆分)
- c - 如何解释字符串中的反斜杠?