#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. Вы пытались отключить его при фокусировке?