У меня есть TextInput внутри ScrollView.
Прокрутка не работает, когда TextInput находится в фокусе. Эта проблема касается только Android.
У меня есть TextInput внутри ScrollView.
Прокрутка не работает, когда TextInput находится в фокусе. Эта проблема касается только Android.
параметр
<ScrollView keyboardShouldPersistTaps="always"
в сочетании с компонентом textInput ниже (пользовательский компонент, который я создал для ввода текста для решения этой проблемы) решил мою проблему:
<TouchableOpacity
activeOpacity={1}
onPress={()=>this.input.focus()}>
<View pointerEvents="none"
<TextInput
ref = {(input) => this.input = input}
/>
</View>
</TouchableOpacity>
multiline={true}
.
- person David Jones; 23.09.2019
В scrollView используйте keyboardShouldPersistTaps
<ScrollView keyboardShouldPersistTaps="handled">
это решит вашу проблему
проверьте документы здесь https://facebook.github.io/react-native/docs/scrollview.html#keyboarddismissmode
Это очень хороший пример: http://blog.arjun.io/react-native/mobile/cross-platform/2016/04/01/handling-the-keyboard-in-react-native.html а>
Для меня было очень важно добавить:
android:windowSoftInputMode="adjustResize"
в AndroidManifest.xml, чтобы сфокусировать textInput
Я по-разному обрабатываю каждую платформу (в Ios достаточно фокуса на inputText, не забудьте поместить this.scrollViewRef
ref внутри ScrollView
, который обернет inputText и поместит ref, индексирующий inputText
if (Platform.OS == 'android') {
this.inputRefs[field].measure((w, h, px, py, xPage, yPage) => {
this.scrollViewRef.scrollTo({ x: 0, y: yPage, animated: true })
this.inputRefs[field].focus()
})
}
this.inputRefs[field].focus()
Это ожидаемое поведение.
Для получения дополнительной информации официальная документация по TextInput
Вы можете попробовать что-то вроде этого: react-native-kayboard-aware -scroll-view