TextInput组件(绑定事件)

搜索框

在输入框中输入,点击搜索获取搜索款的 value

这里写图片描述


代码实现

//TextInput组件(绑定事件)

import React, {Component} from 'react';
import {
    AppRegistry,
    StyleSheet,
    Text,
    View,
    TextInput,
    TouchableOpacity
} from 'react-native';

/*
     TextInput 是一个允许用户在应用中通过键盘输入文本的基本组件.
     本组件的属性提供了多种特性的配置,譬如自动完成,自动大小写,占位文字,以及多种不同的键盘类型(如纯数字键盘)等等
     常用:
     placeholder 占位符
     value   输入框的值
     password     是否密文输入
     editable     输入框是否可编辑
     returnKeyType    键盘return键的类型
     onChange     当文本变化时调用
     onEndEditing     当结束编辑时调用
     onSubmitEditing      当结束编辑,点击提交按钮时调用
     ......
 */

// 组件
var HelloReactNative = React.createClass({
    getInitialState: function () {
        return {
            inputText: " "
        };
    },
    //输入框的 onChange 实现
    getContent: function (text) {
        this.setState({
            inputText: text
        });
    },
    clickBtn: function () {
        alert(this.state.inputText);
    },


    render: function () {
        return (
            <View style={styles.container}>
                <View style={styles.flex}>
                    <TextInput
                        style={styles.input}
                        returnKeyType="search"
                        placeholder="请输入内容"
                        onChangeText={this.getContent}
                        enablesReturnKeyAutomatically="ture"
                        onSubmitEditing={this.clickBtn}
                    >
                    </TextInput>
                </View>
                <TouchableOpacity style={styles.btn} onPress={this.clickBtn}>
                    <Text style={styles.search}>搜索</Text>
                </TouchableOpacity>
            </View>
        );
    }
});

//样式
var styles = StyleSheet.create({
    container: {
        flexDirection: "row",
        height: 45,
        marginTop: 25
    },
    flex: {
        flex: 1
    },
    input: {
        height: 45,
        borderWidth: 1,
        marginLeft: 5,
        paddingLeft: 5,
        borderColor: "#CCC",
        borderRadius: 4
    },
    btn: {
        width: 55,
        marginLeft: 5,
        marginRight: 5,
        backgroundColor: "#2873ff",
        height: 45,
        justifyContent: "center",
        alignItems: "center"
    },
    search: {
        color: "#FFF",
        fontSize: 15,
        fontWeight: "bold"
    }
});


AppRegistry.registerComponent('HelloReactNative', () => HelloReactNative);


属性方法

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

方法:

1.isFocused()
返回值是boolean,判断当前TextInput组件当前是否获得焦点

2.clear() 移除所有输入的文本从TextInput组件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小毅哥哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值