在 React Native 中按下 TextInput 时,防止系统键盘显示

Aka*_*kar 3 keyboard textinput react-native

我想在按下输入字段时显示我的自定义键盘组件。我想完全防止系统默认键盘被触发。

我曾尝试关闭 onFocus 上的键盘,但这会触发键盘,然后关闭键盘。

 <TextInput
     placeholder="type here"
     onFocus={Keyboard.dismiss}
 />
Run Code Online (Sandbox Code Playgroud)

我已经厌倦了将 TextInput 包裹在 TouchableWithoutFeedback 中,但此解决方案不起作用。

<TouchableWithoutFeedback
    onPress={() => Keyboard.dismiss()}
    accessible={false}
>
    <View>
        <TextInput placeholder="type here" />
    </View>
</TouchableWithoutFeedback>
Run Code Online (Sandbox Code Playgroud)

任何想法我怎样才能达到预期的结果?

Kar*_*hta 5

在项目的 (android > app > src > main) 文件夹中打开 AndroidManifest 文件,然后添加:

android:windowSoftInputMode="stateHidden"
Run Code Online (Sandbox Code Playgroud)

像这样的你的活动标签:

<activity
    android:name=".MainActivity"
    android:label="@string/app_name"
    android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
    android:windowSoftInputMode="stateHidden">
Run Code Online (Sandbox Code Playgroud)

  • 您可以参考此链接:https://reactnativecode.com/manually-hide-soft-keyboard/ (3认同)
  • android:windowSoftInputMode="stateHidden" 仍然会触发键盘。 (2认同)

gra*_*n33 5

您可以showSoftInputOnFocus在 Android 上使用,请参阅文档:https : //facebook.github.io/react-native/docs/textinput#showsoftinputonfocus

您的情况与避免在连接外部键盘时显示键盘相同(在 iPad 上很常见)。

  • 这正是我所需要的。多谢。 (3认同)