React Native TextInput blur消耗TouchableHighlight按事件

fra*_*ank 19 ios react-native

<TextInput>当我点击红色的Post按钮时,我有一个我要提交的内容<TouchableHighlight>.当TextInput聚焦时,我完成输入并点击Post按钮,键盘关闭但按钮没有注册水龙头.

我尝试使用TextInput onBlur事件,但它没有给我触摸点的坐标,所以我不知道触摸点是否实际上是在按钮上.

截图

G. *_*ide 21

您需要将属性keyboardShouldPersistTaps = {true}添加到ScrollView.

以下是文档的说法:

keyboardShouldPersistTaps bool:

如果为false,则在键盘启动时轻敲聚焦文本输入外部会解除键盘.如果为true,则滚动视图将不会捕获水龙头,并且键盘不会自动消失.默认值为false.

  • 谢谢!顺便说一下,这个选项也适用于ListView. (2认同)
  • `keyboardShouldPersistTaps`现在已被弃用为布尔值.使用`keyboardShouldPersistTaps ="always"`代替.[反应本机文档](https://facebook.github.io/react-native/docs/scrollview.html) (2认同)

小智 7

@frank,我想你找到了一个可行的解决方案,但除了'keyboardShouldPersistTaps'之外,如果你用一个调用dismissKeyboard的onPress将你的视图包装在一个TouchableWithoutFeedback元素中,它应该解决这个问题.

 <ScrollView keyboardShouldPersistTaps={true} ref='scrollView'>
   <TouchableWithoutFeedback onPress={dismissKeyboard}>
     <View>
     -View Content-
     </View>
  </TouchableWithoutFeedback>
</ScrollView>
Run Code Online (Sandbox Code Playgroud)