React Native学习之路(3)-组件篇(TabBar)react-native-tab-navigator

github地址:https://github.com/happypancake/react-native-tab-navigator

(1) react-native-tab-navigator安装
npm install react-native-tab-navigator --save
(2) react-native-tab-navigator导入
import TabNavigator from 'react-native-tab-navigator' //组件名可以随便取,但所有的组件名要保持一致
(3) react-native-tab-navigator使用
  • TabNavigator.Item :每个选项卡的组件名
  • selected :当前选项卡是否被选中
  • title :每个选项卡的tab导航文字(底部菜单文字说明)
  • titleStyle :(底部菜单的文字样式)
  • selectedTitleStyle :(选中状态的底部菜单文字的样式)
  • renderIcon :每个选项卡的tab导航的图标(底部菜单logo)
  • renderSelectedIcon :(选中状态)tab导航的图标(底部菜单logo)
  • badgeText :提示的角标数字
  • onPress :点击事件响应函数
  • tabBarStyle :设置tabNavigator的底部菜单栏样式
  • sceneStyle :设置tabNavigator的浏览页的样式
  • hidesTabTouch :bool类型,即是否隐藏Tab按钮的按下效果
    相关链接:http://lib.csdn.net/article/reactnative/36484
(4)react-native-vector-icons图标库 (vector矢量的意思)

github地址:https://github.com/oblador/react-native-vector-icons

(5)自定义组件的导入,导出和引用
(1)自定义组件,并导出
export default List  extends Component {
         render() {
               return(
                   <View >
                               <Text>这里是自定义组件</Text>
                   </View>
              );
          }
}
-
-
(2)引入自定义组件,并使用
import List from '本地路径';
export default Home extends Component {
         render() {
               return(
                   <View >
                               <List></List>  //使用
                   </View>
              );
          }
}

完整代码:

/**
 * Sample React Native App
 * https://github.com/facebook/react-native
 * @flow
 */

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

import TabNavigator from 'react-native-tab-navigator';

import List from './app/creation/index';
import Account from './app/account/index';
import Edit from './app/edit/index';
// import Icon from 'react-native-vector-icons/Ionicons';
export default class bb extends Component{
    constructor(props) {
        super(props);
        this.state = {
            selectedTab: 'home'
        }
    };


    render() {
        return(
            <View style={styles.a}>
                <TabNavigator
                    tabBarStyle={{ height:70 , backgroundColor:'white'}}
                    sceneStyle={{ backgroundColor: 'yellow', }}
                >
                    <TabNavigator.Item
                        selected={ this.state.selectedTab === 'quan'}
                        title="养生圈"
                        titleStyle={{ fontSize:14 , color:'#5f5f5f'}}
                        selectedTitleStyle= {{ color: '#3498ff'}}
                        renderIcon={ () => <Image source={ require('./home.png') } style={ styles.icons6}/>}
                        renderSelectedIcon={ () => <Image source={ require('./home1.png') } style={ styles.icons6}/>}
                        onPress={ () => this.setState({ selectedTab: 'quan'}) }
                    >
                       <Edit></Edit>
                    </TabNavigator.Item>


                    <TabNavigator.Item
                        selected={ this.state.selectedTab === 'tang'}
                        title="健康堂"
                        titleStyle= {{ fontSize:15 , color:'#5f5f5f'}}
                        selectedTitleStyle= {{ color: '#3498ff'}}
                        renderIcon={ () => <Image source={ require('./17.png') } style={ styles.icons3}/>}
                        renderSelectedIcon={ () => <Image source={ require('./18.png') } style={ styles.icons3}/>}
                        onPress={ () => this.setState({ selectedTab: 'tang'}) }
                    >
                        <Text>这里是健康堂页面</Text>
                    </TabNavigator.Item>

                    <TabNavigator.Item
                        selected={ this.state.selectedTab === 'home'}
                        title="主页"
                        titleStyle= {{ fontSize:15 , color:'#5f5f5f'}}
                        selectedTitleStyle= {{ color: '#3498ff'}}
                        renderIcon={ () => <Image source={ require('./11.png') } style={ styles.icons4}/>}
                        renderSelectedIcon={ () => <Image source={ require('./12.png') } style={ styles.icons4}/>}
                        onPress={ () => this.setState({ selectedTab: 'home'}) }
                    >
                        <List></List>
                    </TabNavigator.Item>

                    <TabNavigator.Item
                        selected={ this.state.selectedTab === 'che'}
                        title="拟购车"
                        titleStyle= {{ fontSize:15 , color:'#5f5f5f'}}
                        selectedTitleStyle= {{ color: '#3498ff'}}
                        renderIcon={ () => <Image source={ require('./15.png') } style={ styles.icons2}/>}
                        renderSelectedIcon={ () => <Image source={ require('./16.png') } style={ styles.icons2}/>}
                        onPress={ () => this.setState({ selectedTab: 'che'}) }
                    >
                        <View style={ styles.oneView}>
                            <Text>车车车</Text>
                        </View>

                    </TabNavigator.Item>

                    <TabNavigator.Item
                        selected={ this.state.selectedTab === 'my'}
                        title="我的"
                        titleStyle= {{ fontSize:15, color:'#5f5f5f' }}
                        selectedTitleStyle= {{ color: '#3498ff'}}
                        renderIcon={ () => <Image source={ require('./13.png') } style={ styles.icons}/>}
                        renderSelectedIcon={ () => <Image source={ require('./14.png') } style={ styles.icons}/>}
                        onPress={ () => this.setState({ selectedTab: 'my'}) }
                    >
                        <Account></Account>
                    </TabNavigator.Item>
                </TabNavigator>
            </View>
        );
    }
}

const styles = StyleSheet.create({
    a: {
        flex:1
    },
    icons: {
        width:35,
        height: 35,
        marginTop: 10
    },
    icons2: {
        width:38,
        height: 34,
        marginTop: 10
    },
    icons3: {
        width:32,
        height: 31,
        marginTop: 10
    },
    oneText: {
        fontSize: 30
    },
    icons4: {
        width:32,
        height: 35,
        marginTop: 10
    },
    icons6: {
        width:36,
        height: 32,
        marginTop: 10
    },
    homeList: {
        flex:1,
        justifyContent: 'center',
        alignItems: 'center'
    }


});

AppRegistry.registerComponent('bb', () => bb);
react-native-tab-navigator导航效果图
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,125评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,293评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,054评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,077评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,096评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,062评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,988评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,817评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,266评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,486评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,646评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,375评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,974评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,621评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,642评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,538评论 2 352

推荐阅读更多精彩内容