React Native控件之TextInput组件介绍以及实际登录界面实现

React Native控件之TextInput组件介绍以及实际登录界面实现

(一)前言

这一篇文章讲解一下文本输入框TextInput组件使用讲解以及模仿实现一下贵州银行登录界面效果。

TextInput组件允许用户在应用中通过键盘进行输入文本信息。并且该组件还提供了多种配置属性:自动拼写修复、自动大小写切换、占位默认字符设置以及多种不同类型的键盘切换(数字键盘与字母键盘等之间的切换)。

(二)基本使用

TextInput组件和前面讲到的Image或者 Text组件差不多,用起来都很simple。我们直接在应用中添加一个TextInput组件,然后给该组件添加相关属性(例如:边框颜色、粗细、背景、默认值)以及监听方法(例如:刚输入回调、输入完成回调、焦点变化等事件)。看一下官方例子:

   <View style={styles.TextInputContainer}>
                  <TextInput style={{borderWidth:1,borderColor:'red',height:40}}
                      onChangeText={ (text) => this.setState({text}) }
                      value={this.state.text}
                  />
               View>


TextInputContainer:{
    marginTop:20,
    marginLeft:10,
    marginRight:10,
    backgroundColor:'white'
  },

这个例子直接定义了TextInput组件,同时设置组件的风格、高度、边框粗细以及边框颜色。而且,我们监听了TextInput的onChangeText事件来获取用户输入信息。还有其他监听事件,例如onSubmitEditing(提交编辑)、onFoucs(输入框获取焦点的时候调用)等相关的监听方法。

接下来我们进一步将例子加深:创建三个TextInput,同时每个TextInput都添加了默认值,第一个TextInput组件设置高度40,边框粗细和边框的颜色,而且可以输入多行信息。第二个TextInput设置左右额外边距以及自动获取焦点。第三个TextInput设置不可输入状态。直接上代码:

 <View style={styles.TextInputContainer}>
                  <TextInput style={{height:40,borderColor:'green',borderWidth:1,marginTop:5}}
                       multiline={true}
                       defaultValue='默认信息1'
                  />
                  <TextInput style={{height:40,borderColor:'green',borderWidth:1,marginTop:5}}
                       autoFocus={true}
                       defaultValue='默认信息2'
                  />
                  <TextInput style={{height:40,borderColor:'green',borderWidth:1,marginTop:5}}      
                       editable={false}
                       defaultValue='默认信息3'
                  />
               View>

运行效果如下图:
React Native控件之TextInput组件介绍以及实际登录界面实现_第1张图片

(三)属性方法

名称 作用 平台
View支持的相关属性 一些基本属性 官网链接 iOS、Android
autoCapitalize 自动切换成大写 enum(‘none’,’sentences’,’words’,’characters’) none:不自动切换任何字符成大写;sentences:默认每个句子的首字母变成大写;words:每个字母的首字母变成大写;characters:每个字母全部变成大写 iOS、Android
autoCorrent 设置拼写自动修正功能,默认为开启(true) bool iOS、Android
autoFocus 设置是否默认获取到焦点,默认为关闭(false),componentDidMount方法被调用之后才会获取焦点(componentDidMount是React组件被渲染之后React系统回调的方法) bool iOS、Android
defaultValue 给文本输入设置一个默认初始值 string iOS、Android
editable 设置文本框是否可以编辑 bool iOS、Android
keyboardType 键盘类型:用来选择默认弹出键盘的类型,例如指定numeric就是弹出数字键盘。 ‘default’, ‘email-address’, ‘numeric’, ‘phone-pad’, ‘ascii-capable’, ‘numbers-and-punctuation’, ‘url’, ‘number-pad’, ‘name-phone-pad’, ‘decimal-pad’, ‘twitter’, ‘web-search’,鉴于平台的原因如下的值是所有平台都可以进行通用:default,numeric,email-address iOS、Android
maxLength 限制文本输入框最大的输入字符长度 number iOS、Android
multiline 设置可以输入多行文字,默认为false(表示无论文本输入多少,都是单行显示) bool iOS、Android
onBlur 监听方法,文本框失去焦点回调方法 function iOS、Android
onChange 监听方法,文本框内容发生改变回调方法 function iOS、Android
onChangeText 监听方法,文本框内容发生改变回调方法,该方法会进行传递文本内容 function iOS、Android
onEndEditing 监听方法,当文本结束文本输入回调方法 function iOS、Android
onFocus 监听方法 文本框获取到焦点回调方法 function iOS、Android
onLayout 监听方法 组价布局发生变化的时候调用,调用方法参数为 {nativeFunction:{x,y,width,height}} function iOS、Android
onSelectionChange 监听方法 当Text input选中状态被改变时调用 function iOS、Android
onSubmitEditing 监听方法,当编辑提交的时候回调方法。不过如果multiline={true}的时候,该属性就不生效 function iOS、Android
placeholder 当文本输入框还没有任何输入的时候,默认显示信息,当有输入的时候该值会被清除 string iOS、Android
placeholderTextColor 设置placeholderText颜色 string iOS、Android
returnKeyType 决定return键怎么显示 enum(‘done’, ‘go’, ‘next’, ‘search’, ‘send’, ‘none’, ‘previous’, ‘default’, ‘emergency-call’, ‘google’, ‘join’, ‘route’, ‘yahoo’)。双平台适用:done、go、next、search、send;Android:none、previous;iOS:default、emergency-call、google、join、route、yahoo iOS、Android
secureTextEntry 设置是否为密码安全输入框 bool,默认为false iOS、Android
selectTextOnFocus 如果为true,当获得焦点,自动选中所有文本 bool iOS、Android
selectionColor 输入框文本的高亮颜色(iOS中包括光标) string iOS、Android
style 风格属性,可以参考Text组件风格 iOS、Android
value string iOS、Android
numberOfLines 设置TextInput的行数,multiline设置为true,并结合该属性能够满足多行的TextInput number Android
returnKeyLabel 设置return键为文本组件,利用它替换returnKeyType string android
underlineColorAndroid 设置TextInput的下划线颜色 string android
clearButtonMode 清除按钮模式,设置何时应该在TextInput右边出现清除按钮 enum(‘never’, ‘while-editing’, ‘unless-editing’, ‘always’) iOS
clearTextOnFocus 如果为true,当编辑开始自动清除TextInput文本内容 bool iOS
enablesReturnKeyAutomatically 如果为true,当没有输入文本键盘的return键自动失效,当输入文本键盘的return键自动生效,默认值是false bool iOS
keyboardAppearance 设置键盘的颜色 enum(‘default’, ‘light’, ‘dark’) iOS
onKeyPress 当任何一个键被按时调用,被按的键的值作为一个实参传入function,在onChange被调用之前先执行 function iOS
selectionState 请看DocumentSelectionState.js一些状态负责维持一个文档的选中信息(我也不懂什么意思,官网翻译的。) DocumentSelectionState iOS

(四)方法(Methods)

1.isFocused()

返回值是boolean,判断当前TextInput组件当前是否获得焦点

2.clear()

移除所有输入的文本从TextInput组件。

(五)例子

你可能感兴趣的:(React,Native专题学习)