React Native "keyboardDismissMode" at FlatList



是否有可能阻止键盘在滚动平面列表时关闭?

使用 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

相关内容

  • 没有找到相关文章

最新更新