React Native之TextInput的介绍与使用(富文本封装与使用实例,常用输入框封装与使用实例)...

本文主要是介绍React Native之TextInput的介绍与使用(富文本封装与使用实例,常用输入框封装与使用实例)...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

React Native之TextInput的介绍与使用(富文本封装与使用实例,常用输入框封装与使用实例)

TextInput组件介绍

TextInput是一个允许用户在应用中通过键盘输入文本的基本组件。本组件的属性提供了多种特性的配置,譬如自动完成、自动大小写、占位文字,以及多种不同的键盘类型(如纯数字键盘)等等。最简单的用法就是丢一个TextInput到应用里,然后订阅它的onChangeText事件来读取用户的输入。

组件的常用属性

(1)autoCapitalize:控制TextInput是否要自动将特定字符切换为大写。可选值有:none、sentences、words、characters。
  • characters: 所有的字符。
  • words: 每个单词的第一个字符。
  • sentences: 每句话的第一个字符(默认)。
  • none: 不自动切换任何字符为大写。
(2)placeholder:占位符,在输入前显示的文本内容。
(3)value:文本输入框的默认值。
(4)placeholderTextColor:占位符文本的颜色。
(5)secureTextEntry:如果为 true,表示密码输入框。文本显示为“*”,默认值为false。
(6)multiline:如果为 true,表示多行输入。
(7)editable:默认为 true。如果设置为 false 表示不可编辑。
(8)autoFocus:如果为 true,则自动获取焦点。
(9)clearButtonMode:表示什么时候会显示清除按钮。可选值有:never、while-editing、unless-editing、always。
(10)maxLength:能够输入的最长字符数。
(11)enablesReturnKeyAutomatically:默认为 false。设置为 true 表示没有输入文本时返回键无法使用。
(12)returnKeyType:表示软键盘返回键显示的字符串。可选值为:default、go、google、join、next、route、search、send、yahoo、done、emergency-call。
(13)secureTextEntry:默认为 false。如果为 true,则像密码框一样隐藏输入内容。
(14)autoCorrect:如果为false,会关闭拼写自动修正。默认值是true。
(15)blurOnSubmit:如果为true,文本框会在提交的时候失焦。对于单行输入框默认值为true,多行则为false。注意:对于多行输入框来说,如果将blurOnSubmit设为true,则在按下回车键时就会失去焦点同时触发onSubmitEditing事件,而不会换行。
(16)caretHidden:如果为true,则隐藏光标。默认值为false。
(17)keyboardType:keyboardType  enum("default", 'numeric', 'email-address', "ascii-capable", 'numbers-and-punctuation', 'url', 'number-pad', 'phone-pad', 'name-phone-pad', 'decimal-pad', 'twitter', 'web-search') ,决定弹出的何种软键盘的,譬如numeric(纯数字键盘)。

这些值在所有平台都可用:

  • default
  • numeric
  • email-address
  • phone-pad

(18)iosreturnKeyType:iosreturnKeyType enum('done', 'go', 'next', 'search', 'send', 'none', 'previous', 'default', 'emergency-call', 'google', 'join', 'route', 'yahoo') 决定“确定”按钮显示的内容。在Android上你还可以使用returnKeyLabel来自定义文本。

跨平台

下列这些选项是跨平台可用的:

  • done
  • go
  • next
  • search
  • send

限Android

下列这些选项仅限Android使用:

  • none
  • previous

限iOS

下列这些选项仅限iOS使用:

  • default
  • emergency-call
  • google
  • join
  • route
  • yahoo

(19)selectTextOnFocus:如果为true,当获得焦点的时候,所有的文字都会被选中。

(20)selection:selection {start: number, end: number} 设置选中文字的范围(指定首尾的索引值)。如果首尾为同一索引位置,则相当于指定光标的位置。

(21)selectionColor:设置输入框高亮时的颜色(在iOS上还包括光标)

 组件的常用方法

(1)onChange:当文本发生变化时,调用该函数。
(2)onEndEditing:当结束编辑时,调用该函数。
(3)onBlur:失去焦点时触发。
(4)onFocus:获得焦点时触发。
(5)onSubmitEditing:当结束编辑后,点击键盘的提交按钮触发该事件。
(6)onChangeText:当文本框内容变化时调用此回调函数。改变后的文字内容会作为参数传递。
(7)onLayout:当组件挂载或者布局变化的时候调用,参数为 {x, y, width, height}
(8)onScroll:在内容滚动时持续调用,传回参数的格式形如 { nativeEvent: { contentOffset: { x, y } } }。 也可能包含其他和滚动事件相关的参数,但是在Android上,出于性能考虑,不会提供contentSize参数。
(9)onSelectionChange:长按选择文本时,选择范围变化时调用此函数,传回参数的格式形如  { nativeEvent: { selection: { start, end } } }
(10)iosonKeyPress:当一个键被按下的时候调用此回调。传递给回调函数的参数为 { nativeEvent: { key: keyValue } },其中keyValue即为被按下的键。会在onChange之前调用。

 组件的使用实例

 1,文本加输入框(封装组件 iOS Android)

封装组件InputView.js的使用实例,如有需要完整的代码,请留言评论

 1                     <View >
 2                         <Text>请认真填写资料</Text>
 3                         <View style={{ marginTop: 12 }}>
 4                             <InputView name={'账号'}
 5                                 hintText={''}
 6                                 editableV={false}
 7                                 value={String(this.state.telephone)}
 8                             />
 9                             <InputView name={'支付密码'}
10                                 isPassword={true}
11                                 hintText={'请输入数字+字母的组合'}
12                                 onChangeText={(inputData) => { this.setState({ password: inputData }) }}
13                             />
14                             <InputView name={'再次确认'}
15                                 isPassword={true}
16                                 //value={this.state.nickname}
17                                 hintText={'请再次输入'}
18                                 onChangeText={(inputData) => { this.setState({ confirmPass: inputData }) }}
19                             />
20 
21                         </View>
22                     </View>

 2,富文本编辑(封装组件 iOS Android)

富文本RichTextView的使用实例,如有需要完整的代码,请留言评论

 1             <View style={{ marginTop: 20 }}>
 2                         <Text
 3                             style={{
 4                                 fontSize: 14,
 5                                 color: AppSetting.BLACK,
 6                                 paddingLeft: 20,
 7                                 marginBottom: 10
 8                             }}>奖品描述</Text>
 9                         <RichTextView
10                             inputStyle={styles.inputStyle}
11                             placeholder="请填写奖品描述(1000字以内哦)"
12                             minHeight={240} // 最小高度,默认为100
13                             maxLength={1000} // 最大长度,默认为100
14                             onChangeText={(inputValue) => {
15                                 let desPrizes = CommonMethod.filteremoji(inputValue, 1)//表情过滤机制
16                                 this.setState({ desPrizes: desPrizes })
17                             }}
18                             showCount={true} // 展示剩余文字, 默认为true
19                         />
20 
21                     </View>

RichTextView.js富文本编辑组件

  1 /**
  2  * Created by jackson on 2018/08/13.
  3  * 富文本
  4  */
  5 import React, {Component} from 'react';
  6 import PropTypes from 'prop-types'
  7 import {
  8     StyleSheet,
  9     View,
 10     TextInput,
 11     Text,
 12     Dimensions
 13 } from 'react-native';
 14 const ScreenHeight = Dimensions.get('window').height;
 15 const ScreenWidth = Dimensions.get('window').width;
 16 const defaultMinHeight = 100
 17 //模块声名并导出
 18 export default class RichTextView extends Component {
 19     //属性声名
 20     static propTypes = {
 21         style:PropTypes.object,
 22         inputStyle:PropTypes.any,
 23         maxLength:PropTypes.number, // 限制文字长度
 24         placeholder:PropTypes.string,  // 占位文字
 25         minHeight:PropTypes.number,   // 最小高度
 26         showCount:PropTypes.bool,
 27         onChangeText:PropTypes.func,//获取编辑的文本
 28     };
 29 
 30     //默认属性
 31     static defaultProps = {
 32         maxLength: 100,
 33         showCount: true,
 34         minHeight: defaultMinHeight
 35     };
 36 
 37     //构造函数
 38     constructor(props) {
 39         super(props);
 40         //状态机变量声明
 41         this.state = {
 42             text: '',
 43         };
 44     }
 45 
 46     //渲染
 47     render() {
 48         return (
 49             <View style={styles.container}>
 50                 <View style={[styles.inputViewStyle,this.props.style,{minHeight:this.props.minHeight}]}>
 51                     <TextInput
 52                         style={[styles.inputTextStyle,this.props.inputStyle,{minHeight:this.props.minHeight}]}
 53                         placeholder={this.props.placeholder ? this.props.placeholder :'请输入'}
 54                         multiline={true}
 55                         paddingVertical={0}
 56                         selectionColor = {'#b2b2b2'}
 57                         textAlignVertical={'top'}
 58                         placeholderTextColor={'#b2b2b2'}
 59                         underlineColorAndroid={'transparent'}
 60                         maxLength={this.props.maxLength}
 61                         defaultValue = {this.state.text}
 62                         onChangeText={
 63                                 (text) => {
 64                                     this.props.onChangeText(text)
 65                                     this.setState({
 66                                         text: text
 67                                     })
 68                                 }
 69                         }
 70                     />
 71                     {
 72                         this.props.showCount ?
 73                             <Text style={{position: 'absolute', bottom: 5, right: 10, fontSize: 14}}>
 74                                 {this.state.text.length}/{this.props.maxLength}
 75                             </Text>
 76                             :
 77                             null
 78                     }
 79                 </View>
 80             </View>
 81         );
 82     }
 83 };
 84 
 85 const styles = StyleSheet.create({
 86     container: {
 87         flex: 1,
 88         alignItems: 'center',
 89         backgroundColor: '#FFFFFF',
 90     },
 91     inputViewStyle: {
 92         width:ScreenWidth - 40,
 93         minHeight: defaultMinHeight,
 94     },
 95     inputTextStyle: {
 96         fontSize: 14,
 97         color: '#666666',
 98         width: '100%',
 99         minHeight: defaultMinHeight,
100         padding: 10,
101         paddingBottom: 30,
102         paddingTop: 10
103     }
104 });

转载于:https://www.cnblogs.com/jackson-yqj/p/9524842.html

这篇关于React Native之TextInput的介绍与使用(富文本封装与使用实例,常用输入框封装与使用实例)...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/486736

相关文章

Spring IoC 容器的使用详解(最新整理)

《SpringIoC容器的使用详解(最新整理)》文章介绍了Spring框架中的应用分层思想与IoC容器原理,通过分层解耦业务逻辑、数据访问等模块,IoC容器利用@Component注解管理Bean... 目录1. 应用分层2. IoC 的介绍3. IoC 容器的使用3.1. bean 的存储3.2. 方法注

golang中reflect包的常用方法

《golang中reflect包的常用方法》Go反射reflect包提供类型和值方法,用于获取类型信息、访问字段、调用方法等,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值... 目录reflect包方法总结类型 (Type) 方法值 (Value) 方法reflect包方法总结

Python内置函数之classmethod函数使用详解

《Python内置函数之classmethod函数使用详解》:本文主要介绍Python内置函数之classmethod函数使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 类方法定义与基本语法2. 类方法 vs 实例方法 vs 静态方法3. 核心特性与用法(1编程客

C# 比较两个list 之间元素差异的常用方法

《C#比较两个list之间元素差异的常用方法》:本文主要介绍C#比较两个list之间元素差异,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 使用Except方法2. 使用Except的逆操作3. 使用LINQ的Join,GroupJoin

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

使用Python实现可恢复式多线程下载器

《使用Python实现可恢复式多线程下载器》在数字时代,大文件下载已成为日常操作,本文将手把手教你用Python打造专业级下载器,实现断点续传,多线程加速,速度限制等功能,感兴趣的小伙伴可以了解下... 目录一、智能续传:从崩溃边缘抢救进度二、多线程加速:榨干网络带宽三、速度控制:做网络的好邻居四、终端交互

Python中注释使用方法举例详解

《Python中注释使用方法举例详解》在Python编程语言中注释是必不可少的一部分,它有助于提高代码的可读性和维护性,:本文主要介绍Python中注释使用方法的相关资料,需要的朋友可以参考下... 目录一、前言二、什么是注释?示例:三、单行注释语法:以 China编程# 开头,后面的内容为注释内容示例:示例:四

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

python常用的正则表达式及作用

《python常用的正则表达式及作用》正则表达式是处理字符串的强大工具,Python通过re模块提供正则表达式支持,本文给大家介绍python常用的正则表达式及作用详解,感兴趣的朋友跟随小编一起看看吧... 目录python常用正则表达式及作用基本匹配模式常用正则表达式示例常用量词边界匹配分组和捕获常用re

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁