[React Native] Скрыть клавиатуру ввода текста по умолчанию

#react-native #react-native-android #react-native-textinput

#react-native #react-native-android #react-native-textinput

Вопрос:

Я создал настраиваемый компонент встроенной клавиатуры для своего приложения. Теперь я хочу отобразить эту клавиатуру вместо клавиатуры по умолчанию. Как я могу это сделать? Я пытался

 <TextInput
              value={clientDetails.city}
              onFocus={() => onFocus('city')}
              onChangeText={value => onStateChange('city', value)}
              placeholderTextColor={colors.placeholderColor}
              placeholder={
                constants.sellerClosingCosts.clientDetailsCityPlaceholder
              }
              onEndEditing={event =>
                onEndEditing('city', event.nativeEvent.text)
              }
              style={styles.textInput}
            />
 

Но даже когда я не передаю никакого значения prop для keyboardType, значение по умолчанию открывается.

Короче говоря
Как я могу запретить отображение клавиатуры при редактировании ввода текста?

Ответ №1:

Установите значение showSoftInputOnFocus false для вашего ввода текста. Это отключает клавиатуру устройства, но событие onFocus продолжает прослушиваться, и вы можете вызвать свою клавиатуру там.

 <TextInput
    showSoftInputOnFocus={false}
    onFocus={() => <CALL_YOUR_KEYBOARD>}
/>
 

Комментарии:

1. Разве showSoftInputOnFocus не используется для отображения или скрытия программной клавиатуры? При этом все равно будет отображаться клавиатура по умолчанию.

2. Вы используете iOS или Android?

3. @Rohit Второе решение заключается в том, что вы можете импортировать клавиатуру из react-native и вызвать Keyboard.dismiss() при событии фокусировки. Но это также скроет мигающий курсор.

4. Я тестирую на Android, но он будет использоваться и для iOS.

5. Вы пытались отключить его при фокусировке?