当在本机反应中按下 TextInput 时,防止系统键盘显示

Prevent system Keyboard from showing when TextInput is pressed in react native

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

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

 <TextInput
     placeholder="type here"
     onFocus={Keyboard.dismiss}
 />

我厌倦了将 TextInput 包装在 TouchableWithoutFeedback 中,但这个解决方案不起作用。

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

有什么办法可以达到预期的效果吗?

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

android:windowSoftInputMode="stateHidden"

像这样添加到您的 activity 标签:

<activity
    android:name=".MainActivity"
    android:label="@string/app_name"
    android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
    android:windowSoftInputMode="stateHidden">

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

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