TouchableOpacity 作为 ListView 中的 Item 仅在 TextInput 失去焦点后做出反应
TouchableOpacity as Item in ListView only reacts after TextInput has lost focus
我现在正在开发一个搜索组件,它由一个 TextInput 和一个 ListView 组成。它从外部服务器加载结果并相应地填充 ListView。
还有一个关闭搜索组件的 TouchableOpacity。
不幸的是,需要两次按下才能调用 TouchableOpacity 的 onPress 回调——一次让 TextInput 失去焦点,一次触发回调。
但是,如果我按下 TouchableOpacity 关闭搜索组件,或者如果我按下 "react-native-scrollable-tab-view" 组件的选项卡之一,它会立即做出反应,TextInput 甚至会保持其焦点。
所以,我想知道是否有人知道 ListView 是否由于其滚动功能而以某种方式消耗了触摸。
ScrollView
(和遗留 ListView
)组件有一个属性 keyboardShouldPersistTaps
,它有三个选项:
never
(默认值),当键盘启动时在聚焦文本输入的外部点击会关闭键盘。发生这种情况时,children 将不会收到点击。
always
,键盘不会自动关闭,滚动视图不会捕获点击,但滚动视图的 children 可以捕获点击。
handled
,当点击由 children 处理(或由祖先捕获)时,键盘不会自动关闭。
示例
<ScrollView keyboardShouldPersistTaps="always">
// Your TextInput and Button here…
</ScrollView>
我将此 属性 设置为 true,它按预期工作。 =)
我现在正在开发一个搜索组件,它由一个 TextInput 和一个 ListView 组成。它从外部服务器加载结果并相应地填充 ListView。
还有一个关闭搜索组件的 TouchableOpacity。
不幸的是,需要两次按下才能调用 TouchableOpacity 的 onPress 回调——一次让 TextInput 失去焦点,一次触发回调。 但是,如果我按下 TouchableOpacity 关闭搜索组件,或者如果我按下 "react-native-scrollable-tab-view" 组件的选项卡之一,它会立即做出反应,TextInput 甚至会保持其焦点。
所以,我想知道是否有人知道 ListView 是否由于其滚动功能而以某种方式消耗了触摸。
ScrollView
(和遗留 ListView
)组件有一个属性 keyboardShouldPersistTaps
,它有三个选项:
never
(默认值),当键盘启动时在聚焦文本输入的外部点击会关闭键盘。发生这种情况时,children 将不会收到点击。always
,键盘不会自动关闭,滚动视图不会捕获点击,但滚动视图的 children 可以捕获点击。handled
,当点击由 children 处理(或由祖先捕获)时,键盘不会自动关闭。
示例
<ScrollView keyboardShouldPersistTaps="always">
// Your TextInput and Button here…
</ScrollView>
我将此 属性 设置为 true,它按预期工作。 =)