我在 ScrollView 中有一个 TextInput。
当 TextInput 处于焦点时,滚动不起作用。此问题仅影响 Android。
我在 ScrollView 中有一个 TextInput。
当 TextInput 处于焦点时,滚动不起作用。此问题仅影响 Android。
环境
<ScrollView keyboardShouldPersistTaps="always"
结合下面的 textInput 组件(我为文本输入创建以解决此问题的自定义组件)解决了我的问题:
<TouchableOpacity
activeOpacity={1}
onPress={()=>this.input.focus()}>
<View pointerEvents="none"
<TextInput
ref = {(input) => this.input = input}
/>
</View>
</TouchableOpacity>
在滚动视图中使用keyboardShouldPersistTaps
<ScrollView keyboardShouldPersistTaps="handled">
它解决了你的问题
在此处查看文档https://facebook.github.io/react-native/docs/scrollview.html#keyboarddismissmode
i use simple trick for TextInput
and that work for me correctly .Should add this prop
in TextInput
:
<TextInput
multiline={true}
numberOfLines={1}
/>
对我来说真正重要的是添加:
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()