React-native学习-60:react-native-tab-navigator做底部导航栏

该博客介绍了如何在React Native项目中集成底部导航栏,通过引入react-native-tab-navigator库,创建并设置各个标签页,包括首页、发布和我的三个页面,每个页面都有对应的图标和选中状态图标。示例代码详细展示了实现过程。
摘要由CSDN通过智能技术生成

在ReactNative项目中加入底部导航栏,效果如图所示:

 

第一步:导入项目

npm install react-native-tab-navigator
  • 1
  • 2

第二步:文件中导入使用

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

代码:

import React, { Component } from 'react'
import { View, Text, Button } from 'react-native'
//import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
//const Tab = createBottomTabNavigator();
import TabNavigator from 'react-native-tab-navigator';
import Ionicons from 'react-native-vector-icons/Ionicons';

import HomeScreen from './home'
import EditScreen from './edit'
import MineScreen from './mine'

export default class tabbar extends Component {
    state = {
        selectedTab: 'home',
        page: [
            {
                selected: 'home',
                title: '首页',
                renderIcon: () => <Ionicons name='home' size={20} color={'#888'} />,
                renderSelectedIcon: () => <Ionicons name='home-outline' size={20} color={'#F00'} />,
                onPress: () => this.setState({ selectedTab: 'home' }),
                component: <HomeScreen />
            },
            {
                selected: 'edit',
                title: '发布',
                renderIcon: () => <Ionicons name='add' size={20} color={'#888'} />,
                renderSelectedIcon: () => <Ionicons name='add-outline' size={20} color={'#F00'} />,
                onPress: () => this.setState({ selectedTab: 'edit' }),
                component: <EditScreen />
            },
            {
                selected: 'mine',
                title: '我的',
                renderIcon: () => <Ionicons name='hammer' size={20} color={'#888'} />,
                renderSelectedIcon: () => <Ionicons name='hammer-outline' size={20} color={'#F00'} />,
                onPress: () => this.setState({ selectedTab: 'mine' }),
                component: <MineScreen />
            },
        ]
    }

    render() {
        return (
            <View style={{ flex: 1, backgroundColor: '#F5FCFF' }}>
                <TabNavigator >
                    {
                        this.state.page.map((v, i) =>
                            <TabNavigator.Item key={i}
                                selected={v.selected === this.state.selectedTab}
                                title={v.title}
                                renderIcon={v.renderIcon}
                                renderSelectedIcon={v.renderSelectedIcon}
                                onPress={v.onPress}
                                selectedTitleStyle={{ color: "#c863b5" }}
                                tabStyle={{
                                    backgroundColor: "#eee", justifyContent: "center"
                                }}
                            >
                                {v.component}
                            </TabNavigator.Item>
                        )
                    }
                </TabNavigator>
            </View>
        )
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值