react-native - TouchableOpacity 作为 ListView 中的 Item 仅在 TextInput 失去焦点后才会 react

标签 react-native scrollview textinput

我现在正在研究一个由 TextInput 和 ListView 组成的搜索组件。它从外部服务器加载其结果并相应地填充 ListView。

还有一个关闭搜索组件的 TouchableOpacity。

不幸的是,需要两次按下才能调用 TouchableOpacity 的 onPress 回调——一次让 TextInput 失去焦点,另一次触发回调。
但是,如果我按 TouchableOpacity 关闭搜索组件,或者如果我按“react-native-scrollable-tab-view”组件的选项卡之一,它会立即使用react,TextInput 甚至会保持其焦点。

所以,我想知道是否有人知道 ListView 是否由于其滚动功能而以某种方式消耗了触摸。

最佳答案

ScrollView (和遗留 ListView )组件有一个 Prop keyboardShouldPersistTaps 这需要三个选项:

  • never (默认),当键盘向上时,在焦点文本输入之外点击会关闭键盘。发生这种情况时, child 将不会收到水龙头。
  • always ,键盘不会自动关闭, ScrollView 不会捕捉点击,但 ScrollView 的子级可以捕捉点击。
  • handled ,当点击被 child 处理(或被祖先捕获)时,键盘不会自动关闭。

  • 例子
    <ScrollView keyboardShouldPersistTaps="always">
      // Your TextInput and Button here…
    </ScrollView>
    

    我将此属性设置为 true,它按预期工作。 =)

    关于react-native - TouchableOpacity 作为 ListView 中的 Item 仅在 TextInput 失去焦点后才会 react ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34290787/

    相关文章:

    javascript - 类型 `function` 的无效 prop `boolean`

    react-native - 屏幕之间导航但构造函数未调用

    android-edittext - 当焦点文本输入 react native 时, ScrollView 无法滚动

    html - 文本输入光标太高。我该怎么办?

    javascript - 如何将文本输入光标的初始位置设置为左上角

    java - 如何在 React Native 中重建 java 文件?

    android - 如何在内容滚动时捕获 ScrollView 的一部分?

    ios - Scrollview 上参数类型的分布式对象修饰符冲突

    javascript - 输入字段动态隐藏,以后无法显示

    javascript - 当应用程序被禁用时,React Native 在特定时间显示消息