前面使用TabBar 实现了底部tab标签,通过stackNavigator 实现了页面跳转,接下来,使用TextInput 来实现一个搜索功能。

TextInput 属性比较多,不一一介绍,具体可以百度搜索或者结合源码。

下面介绍介个比较常用的属性

<TextInput
	style={{height:50}}
	placeholder ="搜索 ..."// = android EditText hint
	placeholderTextColor="#6435c9"// = hint color
	underlineColorAndroid='transparent'// 下划线透明
   // clearButtonMode="while-editing"
	onChangeText={(query) =>{
		this.setState({
			query:query,
			loaded:false,

		});// 当内容改变时执行该方法
	}}
	onSubmitEditing={this.fetchData.bind(this)}
	//secureTextEntry
 //   onFocus={() =>console.log('onFocus')} //选中文本框
 //   onBlur={() =>console.log('onBlur')}//离开文本框
  //  onChange={() =>console.log('onChange')}//文本框内容变化
  //  onChangeText={(text) =>console.log(text)}//文本框内容变化,变化的内容
  //  onEndEditing={() =>console.log('onEndEditing')}//文本框编译结束
 //   onSubmitEditing={() =>console.log('onSubmitEditing')}//按下回车键
   // autoFocus
   // defaultValue="火星救援"
   // autoCorrect={false}
	//editable={false}
	//keyboardType='url' web-search
/>

实现思路跟前面两个页面一样,集合TabBar  在主页面,添加第三个底部tab标签 搜索标签,搜索页面使用TextInput 实现输入框功能

输入框中输入能容点击回车 跳转到搜索结果列表页,由前面的 stackNavigator 实现 ,点击列表页,跳转到详情页,也是由stackNavigator实现。

const App = StackNavigator({
    Main: {screen: SearchForm, navigationOptions: {
        title: "搜索",
        headerLeft: null,
        headerStyle:{
            elevation: 0
        },
        headerTitleStyle:{ alignSelf:'center'},

    },},
    //搜索结果列表
    SearchResult: {screen: SearchResult,
        navigationOptions:({navigation,screenProps}) =>({
                headerTitle: navigation.state.params.title,
            }

        )
    },
    //详情页
    Detail: {screen: MovieDetail,
        navigationOptions:({navigation,screenProps}) =>({
                headerTitle: navigation.state.params.info,
            }

        )
    },

});

展示UI跟前面的列表相同由ListView 实现。

 render() {
        return (
            <View style={styles.Container}>

                <TabNavigator>
                    <TabNavigator.Item
                        selected={this.state.selectedTab === 'home'}
                        title="推荐电影"
                        renderIcon={() => <Image source={TAB_NORMAL_1} style={styles.icon}/>}
                        renderSelectedIcon={() => <Image source={TAB_PRESS_1} style={styles.icon}/>}
                        badgeText="1"
                        onPress={() => this.setState({selectedTab: 'home'})}>
                        <Feature/>
                    </TabNavigator.Item>
                    <TabNavigator.Item
                        selected={this.state.selectedTab === 'profile'}
                        title="北美票房"
                        renderIcon={() => <Image source={TAB_NORMAL_2} style={styles.icon}/>}
                        renderSelectedIcon={() => <Image source={TAB_PRESS_2} style={styles.icon}/>}
                        onPress={() => this.setState({selectedTab: 'profile'})}>
                        <USBox/>
                    </TabNavigator.Item>
                    <TabNavigator.Item
                        renderIcon={() => <Image source={{uri:icons.search}} style={styles.icon}/>}
                        selected={this.state.selectedTab === 'search'}
                        title="搜索"
                        onPress={() => this.setState({selectedTab: 'search'})}>
                        <Search/>
                    </TabNavigator.Item>
                </TabNavigator>
            </View>
        );
    }

UI效果展示:



React-Native进阶_7.TextInput的使用实现搜索功能的更多相关文章

  1. React Native 组件之TextInput

    React Native 组件之TextInput类似于iOS中的UITextView或者UITextField,是作为一个文字输入的组件,下面的TextInput的用法和相关属性. /** * Sa ...

  2. 从零学React Native之11 TextInput

    TextInput 组件是用来通过键盘输入文字,可以使用View组件和Text组件样式,没有自己特定的样式. 与Text组件类似,TextInput组件内部的元素不再使用FlexBox布局,而采用文本 ...

  3. react native进阶

    一.前沿||潜心修心,学无止尽.生活如此,coding亦然.本人鸟窝,一只正在求职的鸟.联系我可以直接微信:jkxx123321 二.项目总结 **||**文章参考资料:1.  http://blog ...

  4. React Native 接入微博、微信、QQ 登录功能

    在 App 开发中我们经常需要在用户登录模块接入 SNS 登录组件,这样会大大提高用户的注册体验.特别当一个不是刚性需求 App 推广的时候,这样会很大的降低用户体验的成本,没有人愿意忍受输入邮箱.手 ...

  5. 教你轻松在React Native中集成统计(umeng)的功能(最新版)

    关于在react-native中快速集成umeng统计,网上的文章或者教程基本来自----贾鹏辉老师的文章http://www.devio.org/2017/09/03/React-Native-In ...

  6. React Native随笔——组件TextInput

    一.实例 先看一下我要做的搜索框的样子 需要一个Image,和一个TextInput 去掉默认下划线 underlineColorAndroid='transparent' 设置光标颜色 select ...

  7. (转)React Native 使用react-native-image-picker库实现图片上传功能

    react-native-image-picker作为一个集成相机和相册的功能的第三方库,因为其使用相对简单受到前端开发人员的喜爱. react-native-image-picker使用 首先,安装 ...

  8. [React Native]高度自增长的TextInput组件

    之前我们学习了从零学React Native之11 TextInput了解了TextInput相关的属性. 在开发中,我们有时候有这样的需求, 希望输入区域的高度随着输入内容的长度而增长, 如下: 这 ...

  9. React Native 学习笔记--进阶(二)--动画

    React Native 进阶(二)–动画 动画 流畅.有意义的动画对于移动应用用户体验来说是非常必要的.我们可以联合使用两个互补的系统:用于全局的布局动画LayoutAnimation,和用于创建更 ...

随机推荐

  1. LeetCode(476): Number Complement

    Given a positive integer, output its complement number. The complement strategy is to flip the bits ...

  2. zabbix分布式监控系统安装配置

    zabbix简介: zabbix(音同 zæbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵 ...

  3. kali2016.2安装后配置

    接触kali有几个月了,总是有一种浅尝辄止的感觉.因为不常用,一些常用操作时常想不起来了.为日后查找方便,特通过写博客方式来记录. 新建虚拟机,和安装其它操作系统差别不大,按提示一步一步安装.第1次安 ...

  4. sstream头文件-getline 函数 和 stringstream函数 和string的常见用法

    2017-08-12 19:50:50 writer:pprp getline函数可以读入一行的字符,不论有没有空格 第一个参数,流 第二个参数 ,将流读入的地方 第三个参数,当读到某个字符的时候停止 ...

  5. docker远程仓库镜像推送到本地仓库

    #!/bin/bashimageid=(`docker images |grep -v REPOSITORY|awk '{print $3}'`)image=(`docker images |grep ...

  6. shell数组中“和@的妙用

    #!/bin/bashlist=(4k"8k a bit""16k abc""32k gold"64k)for i in "${l ...

  7. 学习JVM

    所谓虚拟机,就是一台虚拟的机器.它是一款软件,用来执行一系列虚拟计算机指令,大体上虚拟机可以分为系统虚拟机和程序虚拟机,大名鼎鼎的Visual Box.VMware就属于系统虚拟机,他们完全是对物理计 ...

  8. 三重Des对称加密在Android、Ios 和Java 平台的实现

    引言      如今手机app五彩缤纷,确保手机用户的数据安全是开发人员必须掌握的技巧,下面通过实例介绍DES在android.ios.java平台的使用方法: DES加密是目前最常用的对称加密方式, ...

  9. 【Python】改变对象的字符串显示

    问题 改变对象实例的打印或显示输出,让它们更具可读性. 解决方案 要改变一个实例的字符串表示,可重新定义它的 __str__() 和 __repr__() 方法.例如: class Pair: def ...

  10. datagrid与DropDownList关联使用

    最近做一个页面需要用到这个两个控件,之前虽然看过,但是没有动手实践过.突然要做这么一个页面,并用上,真的有点着急.于是乎,网上疯狂找datagrid与DropDownList 的例子,找了很多很多,看 ...