防止键盘在 Modal 中关闭 React Native
Prevent keyboard dismiss React Native inside Modal
我在屏幕底部有一个文本输入,按下时会扩展成一个更大的部分,其中包含一些选项。 bottomHeight
和height
在键盘打开时增加。
当按下额外容器中的这些预定义 tags
之一时,我不想关闭键盘,但我不能让它工作,需要一些帮助。
我已将 textinput
包裹在滚动视图中,尝试按照其他地方的建议使用 keyboardShouldPersistTaps
和 keyboardDismissMode
,但它不起作用。
没有要更新的父 ScrollView、ListView 或 FlatList,但是此组件位于 Modal
内,由 SafeAreaView
包裹
<KeyboardAvoidingView style={{ position: 'absolute', bottom: this.props.bottomHeight, left: 0, right: 0, height: this.props.height }}>
// not sure if I need this inner scrollview, ideally it should just be a view
<ScrollView style={this._computeBottomContainer()} keyboardShouldPersistTaps="always" keyboardDismissMode="on-drag">
<TextInput
style={styles.filter}
placeholder="Type to filter tags"
onChangeText={(text) => this.props.suggestTags(text)}
selectionColor="black"
blurOnSubmit={false}
/>
{ this.props.keyboardOpen &&
<View style={styles.tagsOuterContainer}>
<Text style={styles.suggest}>Suggested tags: {this.props.suggestedTags.length}</Text>
<View style={styles.tagsInnerContainer}>
<FlatList
data={this.props.suggestedTags}
horizontal={true}
renderItem={this.renderTag}
keyExtractor={( {item}, index) => item + index}
keyboardShouldPersistTaps='always'
keyboardDismissMode='on-drag'
/>
</View>
</View>
}
</ScrollView>
</KeyboardAvoidingView>
在我的应用程序的根部,我有一个 <Swiper />
元素,它基本上是一个 ScrollView。将 keyboardShouldPersistTaps="always" keyboardDismissMode="on-drag"
作为道具添加到 Swiper 解决了我的问题
我在屏幕底部有一个文本输入,按下时会扩展成一个更大的部分,其中包含一些选项。 bottomHeight
和height
在键盘打开时增加。
当按下额外容器中的这些预定义 tags
之一时,我不想关闭键盘,但我不能让它工作,需要一些帮助。
我已将 textinput
包裹在滚动视图中,尝试按照其他地方的建议使用 keyboardShouldPersistTaps
和 keyboardDismissMode
,但它不起作用。
没有要更新的父 ScrollView、ListView 或 FlatList,但是此组件位于 Modal
内,由 SafeAreaView
<KeyboardAvoidingView style={{ position: 'absolute', bottom: this.props.bottomHeight, left: 0, right: 0, height: this.props.height }}>
// not sure if I need this inner scrollview, ideally it should just be a view
<ScrollView style={this._computeBottomContainer()} keyboardShouldPersistTaps="always" keyboardDismissMode="on-drag">
<TextInput
style={styles.filter}
placeholder="Type to filter tags"
onChangeText={(text) => this.props.suggestTags(text)}
selectionColor="black"
blurOnSubmit={false}
/>
{ this.props.keyboardOpen &&
<View style={styles.tagsOuterContainer}>
<Text style={styles.suggest}>Suggested tags: {this.props.suggestedTags.length}</Text>
<View style={styles.tagsInnerContainer}>
<FlatList
data={this.props.suggestedTags}
horizontal={true}
renderItem={this.renderTag}
keyExtractor={( {item}, index) => item + index}
keyboardShouldPersistTaps='always'
keyboardDismissMode='on-drag'
/>
</View>
</View>
}
</ScrollView>
</KeyboardAvoidingView>
在我的应用程序的根部,我有一个 <Swiper />
元素,它基本上是一个 ScrollView。将 keyboardShouldPersistTaps="always" keyboardDismissMode="on-drag"
作为道具添加到 Swiper 解决了我的问题