【问题标题】:Render component after keyboard closes or listen to keyboard close event in react app in cordova android键盘关闭后渲染组件或在cordova android的反应应用程序中收听键盘关闭事件
【发布时间】:2021-12-26 14:49:38
【问题描述】:
我正在使用 cordova 将“正在进行中的”react.js 应用程序迁移到 Android 应用程序。
一切似乎都工作正常,除了一个组件在键盘关闭时不会呈现自己,该组件通常看起来像这样。
现在,当您单击输入并关闭它时,视图会重新渲染得很好:
但是一旦你填充它并关闭键盘,组件就不会重新呈现自己:
组件就这样卡住了,简单的解决方案显然是通过再次设置状态来“强制渲染”,问题是我似乎无法找到一种方法来监听键盘的变化-cordova 应用程序,为什么当表单为空时组件会重新呈现自己,而在填充时却不会?
【问题讨论】:
标签:
javascript
reactjs
cordova
cordova-plugins
【解决方案1】:
希望这可以帮助某人:
在component:
为窗口调整大小事件添加一个空回调。
useEffect(() => {
window.onresize = function(){
//console.log("resizing");
};
}, []);
以及添加到cordova config.xml:
在widget tab里面
xmlns:android="http://schemas.android.com/apk/res/android" 作为属性
和:
<edit-config file="AndroidManifest.xml" mode="merge" target="/manifest/application/activity">
<activity android:configChanges="orientation|keyboardHidden" android:windowSoftInputMode="adjustResize" />
</edit-config>
作为小部件的内容。
还有:
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, maximum-scale=1.0, target-densityDpi=device-dpi" />
在public/index.html的<head/>中