Ans*_*hew 13 react-native-android react-navigation
如何在AndroidManifest.xml中使用'adjustPan'和'adjustResize'响应原生app.
我的导航是在ReactNavigation上使用StackNavigator和TabNavigator进行的.我有一个文本框,用户可以在其中键入任何数据.执行此操作时,标签栏显示在键盘顶部.为了阻止这个我使用'adjustPan',它工作正常.
在另一个屏幕上,我有一个注册多个文本框.除非您点击键盘上的"勾选"或手动点击系统后退按钮,否则我无法滚动整个屏幕.为了解决这个问题,我发现'KeyboardAvoidingView'工作正常.但要激活这个需要将'windowSoftInputMode'更改为'adjustResize'.
在文档中,发现这两个属性完全不同,我不能同时在一起.有人可以帮我吗?
参考文献:https://medium.freecodecamp.org/how-to-make-your-react-native-app-respond-gracefully-when-the-keyboard-pops-up-7442c1535580
我找到了一个名为 的 npm 包react-native-android-keyboard-adjust,它允许我们按需切换windowSoftInputMode,这应该能够满足您的用例。然而,该库似乎没有得到积极维护,安装文档有点过时,但在大多数情况下,您可以按照README.md.
就这Update MainActivity.java in your project部分而言,React Native 的最新版本应该能够自动链接依赖项,无需手动进行此修改。
完成上述步骤后,您可以尝试启动您的应用程序。如果您遇到与类似问题相关的错误The number of method references in a .dex file cannot exceed 64k,您可以将以下内容添加到您的android/app/build.gradle文件中
android {
...
defaultConfig {
...
multiDexEnabled true
}
...
}
Run Code Online (Sandbox Code Playgroud)
安装包后,您可以调用库提供的方法来根据windowSoftInputMode需要更改。
例如,假设您有默认windowSoftInputMode值adjustResize,并且您想在 ScreenA 中使用adjustPan,您可以AndroidKeyboardAdjust.setAdjustPan()在 ScreenA 安装时调用,并通过调用windowSoftInputMode将adjustResize重置为卸载时AndroidKeyboardAdjust.setAdjustResize()
| 归档时间: |
|
| 查看次数: |
1998 次 |
| 最近记录: |