【问题标题】:How to set windowSoftInputMode programmatically on different screens in react-native?如何在 react-native 的不同屏幕上以编程方式设置 windowSoftInputMode?
【发布时间】:2020-11-24 22:52:41
【问题描述】:

在我的 react-native 应用程序中,当键盘弹出时,我需要不同屏幕上的不同屏幕行为。
在某些屏幕中我需要屏幕向上移动,而在某些屏幕中我不想更改屏幕位置等。

可以通过在AndroidManifest.xml 文件中将android:windowSoftInputMode 的值设置为adjustNothingadjustResize 来实现个人行为。

但是在清单文件中设置这些值会改变所有屏幕的行为。

有没有办法在不同的屏幕上以编程方式更改它?

在 android 代码中它看起来像 achievable using a getWindow() call。如何在 react-native 中做到这一点?

【问题讨论】:

    标签: react-native react-native-android


    【解决方案1】:

    试试这个组件react-native-android-keyboard-adjust

    当您不想向上移动视图的组件挂载时,设置AndroidKeyboardAdjust.setAdjustPan(),当该组件卸载时将其重置为AndroidKeyboardAdjust.setAdjustResize() 或任何适合您条件的选项

    this回答

    【讨论】:

      【解决方案2】:

      尝试使用 ScrollView 而不是 View 然后将其包装在 KeyboardAvoidingView 上

      【讨论】:

      • ScrollView 也将视图向上推。在某些屏幕上,我不希望任何屏幕更改(我希望屏幕的下部在键盘弹出时隐藏,而上部是地图,根本不应该移动,它可能具有“adjustNothing”值,但是它应该只在这个屏幕上动态设置)
      猜你喜欢
      • 2018-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多