是否有可能阻止键盘在滚动平面列表时关闭?
使用 ScrollView 时,将道具"键盘关闭模式"设置为"无"是此问题的解决方案,但这在 FlatList 中对我不起作用......
我在自制组件中使用 FlatList,即在堆栈导航器中,而其标头中有一个聚焦的 TextInput。我像这样渲染平面列表:
<View style={{flex: 1}}>
<FlatList
style={{flex: 1}}
data={this.props.data}
keyExtractor={(item, index) => item.id}
renderItem={this.renderItem}
/>
</View>
renderItem(( 函数:
renderItem = ({item, index}) => (
<TouchableHighlight
style={{paddingVertical: 10}}
onPress={() => {
this.props.onChooseItem(item);
}}
>
<Text numberOfLines={1} >
{item.text}
</Text>
</TouchableHighlight>
)
参考部分开头的文档说 FlatList "继承 ScrollView Props,除非它嵌套在另一个相同方向的 FlatList 中><。
不需要在平面列表中滚动视图,它会产生性能问题。
只需在平面列表中添加onScrollBeginDrag={Keyboard.dismiss}
即可。 它也可以在Android中工作,而keyboardDismissMode='on-drag'
只能在iOS中使用
您可能会考虑将FlatList封装在ScrollView中?
即使这似乎可以解决问题,也不是推荐的方法!
这是因为如果它强制重新渲染整个平面列表,每次滚动屏幕时。
你最好尝试一个组件,比如反应原生键盘感知滚动视图
我发现这篇文章有一些替代的想法来修复它:
如何将键盘避免视图与 FlatList 一起使用?
检查:https://facebook.github.io/react-native/docs/scrollview#keyboarddismissmode