我现在正在研究一个由 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/