在移动应用程序中,显示和关闭键盘似乎是一件微不足道的事情,但是当它与react-navigation和模式呈现一起使用时,在自动关闭它方面会很棘手。 至少那是根据我最初的假设。 本文旨在详细介绍我从键盘处理中学到的知识,以及在处理TextInput时如何避免多余的敲击。由于所有库都是开源的,因此还将有很多代码拼写。 在撰写本文时,我正在使用的React Native版本是0.57.5 内置的TextInput组件 React Native带有许多基本组件,其中一个是TextInput,用于通过键盘将文本输入到应用中。 从’react’导入React,{组件}; 从’react-native’导入{AppRegistry,TextInput}; 导出默认类UselessTextInput扩展Component { 构造函数(道具){ 超级(道具); this.state = {text:’Useless Placeholder’}; } render(){ 返回( <TextInput 样式= {{高度:40,borderColor:’灰色’,borderWidth:1}} onChangeText = {(文本)=> this.setState({text})} 值= {this.state.text} /> ); } } 就是这样,每当我们单击文本输入时,就会出现键盘,允许我们输入值。 要通过按屏幕上的任意位置来关闭键盘,简单的解决方法是将TouchableWithoutFeedback与Keyboard一起使用。 这类似于在iOS UIView拥有UITapGestureRecognizer并调用view.endEditing import { Keyboard } from ‘react-native’ Keyboard.dismiss() ScrollView中的TextInput 通常,在React Native(主要是ScrollView的滚动组件中,我们应该有一些文本输入,以便能够处理较长的内容列表并避免使用键盘。 如果TextInput在ScrollView则关闭键盘的行为会有所不同,并取决于keyboardShouldPersistTaps 确定敲击后键盘何时保持可见状态。 ‘never’ (默认),在键盘向上弹起时在聚焦文本输入之外点击会关闭键盘。 发生这种情况时,孩子们将不会收到水龙头。 ‘always’ ( […]