React Native - 单击 Flatlist 的项目(搜索列表后)

Posted

技术标签:

【中文标题】React Native - 单击 Flatlist 的项目(搜索列表后)【英文标题】:React Native - Click item of Flatlist (after searched the list) 【发布时间】:2020-04-14 04:37:05 【问题描述】:

我将 Flatlist 和 TextInput 作为 ListHeaderComponent 上的搜索栏。 当我填写 TextInput 并单击 flatlist 的项目(使用 TouchableOpacity)时,只有一个键盘关闭动作,它需要第二次单击才能从 flatlist 中选择项目

有什么办法吗?

【问题讨论】:

任何代码?如果我们看不到您的代码在做什么,我们无法帮助您。请提供您的代码的Minimal, Complete, and Reproducible 示例,并详细说明未按预期工作的内容、您尝试过的内容以及您的预期结果。 【参考方案1】:

keyboardShouldPersistTaps 属性添加到 FlatList。

<FlatList
  keyboardShouldPersistTaps='handled'
  data=...      
  renderItem=...
... />

在此Github issue 中提出了类似的建议。但是,您没有使用 ScrollView。尽管 FlatList 没有记录到具有 keyboardShouldPersistTaps 属性,但它确实有,因为 FlatList 是“&lt;VirtualizedList&gt; 的便利包装,因此继承了它的属性(以及 &lt;ScrollView&gt; 的属性)”。 source

替代方案:在 TextInput 搜索处理程序中关闭键盘,这就是 Gmail 应用程序的搜索方式。一旦您的用户完成输入并按下提交,Keyboard.dismiss()。如果用户不需要“提交”,这将不起作用,就像大多数浏览器应用程序的工作方式一样。

【讨论】:

以上是关于React Native - 单击 Flatlist 的项目(搜索列表后)的主要内容,如果未能解决你的问题,请参考以下文章

在按钮上打开 react-native Modal 单击操作表选项

单击使用 react-native 时如何更改图像和文本颜色?

React Native:滚动视图在文本框外单击

React Native - 单击 Flatlist 的项目(搜索列表后)

React-Native:除非单击屏幕,否则调试时应用程序卡住

多项数据。使用 react-native 在动态模式中显示单击的数据