导航一直是App开发中比较重要的一个组件,ReactNative提供了两种导航组件供我们使用,分别是:NavigatorIOS和Navigator,但是前者只能用于iOS平台,后者在ReactNative0.44版本以后已经被移除了。

好在有人提供了更好的导航组件,就是我们今天要讲的react-navigation,并且ReactNative官方更推荐我们使用此组件。
本篇文章只讲解基础用法,如果你想了解更多,请戳这里->戳我。
简介
react-navigation主要包括导航,底部tab,顶部tab,侧滑等,分别为:
我们今天主要讲TabNavigator。
效果展示
实现代码
import React, { Component } from 'react';
import {
AppRegistry,
StyleSheet,
Button,
Text,
View,
Image,
StatusBar
} from 'react-native';
import { StackNavigator, TabBarBottom, TabNavigator } from "react-navigation";
class Home extends React.Component {
static navigationOptions = {
tabBarLabel: '热点',
tabBarIcon: ({ focused, tintColor }) => (
<Image
source={focused ? require('../res/images/hot_hover.png') : require('../res/images/hot.png')}
style={{ width: 26, height: 26, tintColor: tintColor }}
/>
)
};
render() {
return (
<View style={styles.container}>
<Text>!这是热点</Text>
</View>
);
}
}
class Circle extends React.Component {
static navigationOptions = {
tabBarLabel: '圈子',
tabBarIcon: ({ focused, tintColor }) => (
<Image
source={focused ? require('../res/images/coterie.png') : require('../res/images/coterie.png')}
style={{ width: 26, height: 26, tintColor: tintColor }}
/>
)
};
render() {
return (
<View style={styles.container}>
<Text>!这是圈子</Text>
</View>
);
}
}
class Tools extends React.Component {
static navigationOptions = {
tabBarLabel: '工具',
tabBarIcon: ({ focused, tintColor }) => (
<Image
source={focused ? require('../res/images/tool.png') : require('../res/images/tool.png')}
style={{ width: 26, height: 26, tintColor: tintColor }}
/>
)
};
render() {
return (
<View style={styles.container}>
<Text>!这是工具</Text>
</View>
);
}
}
class Mypage extends React.Component {
static navigationOptions = {
tabBarLabel: '我的',
tabBarIcon: ({ focused, tintColor }) => (
<Image
source={focused ? require('../res/images/my_hover.png') : require('../res/images/my.png')}
style={{ width: 26, height: 26, tintColor: tintColor }}
/>
)
};
render() {
return (
<View style={styles.container}>
<Text>!这是我的</Text>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#fff',
}
});
const MyApp = TabNavigator(
{
Home: {
screen: Home,
},
Circle: {
screen: Circle,
},
Tools: {
screen: Tools,
},
Mypage: {
screen: Mypage,
},
},
{
tabBarOptions: {
activeTintColor: '#4BC1D2',
inactiveTintColor: '#000',
showIcon: true,
showLabel: true,
upperCaseLabel: false,
pressColor: '#823453',
pressOpacity: 0.8,
style: {
backgroundColor: '#fff',
paddingBottom: 0,
borderTopWidth: 0.5,
borderTopColor: '#ccc',
},
labelStyle: {
fontSize: 12,
margin: 1
},
indicatorStyle: { height: 0 }, //android 中TabBar下面会显示一条线,高度设为 0 后就不显示线了
},
tabBarPosition: 'bottom',
swipeEnabled: false,
animationEnabled: false,
lazy: true,
backBehavior: 'none',
});
module.exports = MyApp;
配置说明
NavigationOptions
当然,通过NavigationOptions来配置我们的tabBarItem:
TabNavigatorConfig
tabBarOptions for (iOS上的默认标签栏)TabBarBottom
tabBarOptions for (Android上的默认标签栏)TabBarTop
小技巧
1.去掉安卓下的下划线,设置:tabBarOptions => indicatorStyle:{ height: 0 };
2.底部导航在导航最上方添加一条分割线,设置:tabBarOptions => style => borderTopWidth: 0.5, borderTopColor: '#ccc';
3.导航安卓图标和文字间隙比较大,手动调整小设置:tabBarOptions => labelStyle => margin: 0;
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# React
# Native顶部导航
# Native底部导航
# Native
# 导航
# React使用TypeScript的最佳实践和技巧
# React组件、状态管理、代码优化的技巧
# 这是
# 选项卡
# 默认为
# 明度
# 默认设置
# 几个
# 首次
# 就不
# 两种
# 也能
# 下划线
# 设为
# 你想
# 分别为
# 会使
# 所示
# 比较大
# 主要包括
# 既能
# 小技巧
相关文章:
如何用西部建站助手快速创建专业网站?
建站之星如何防范黑客攻击与数据泄露?
宁波自助建站系统如何快速打造专业企业网站?
正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?
C++如何将C风格字符串(char*)转换为std::string?(代码示例)
高性价比服务器租赁——企业级配置与24小时运维服务
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
制作电商网页,电商供应链怎么做?
c++怎么用jemalloc c++替换默认内存分配器【性能】
魔毅自助建站系统:模板定制与SEO优化一键生成指南
如何在VPS电脑上快速搭建网站?
建站之星安装步骤有哪些常见问题?
微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?
如何通过商城自助建站源码实现零基础高效建站?
如何通过wdcp面板快速创建网站?
个人摄影网站制作流程,摄影爱好者都去什么网站?
免费ppt制作网站,有没有值得推荐的免费PPT网站?
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
建站与域名管理如何高效结合?
南京网站制作费用,南京远驱官方网站?
招贴海报怎么做,什么是海报招贴?
如何续费美橙建站之星域名及服务?
建站之星安装后界面空白如何解决?
建站之星代理如何获取技术支持?
如何零基础在云服务器搭建WordPress站点?
Python多线程使用规范_线程安全解析【教程】
官网建站费用明细查询_企业建站套餐价格及收费标准指南
如何通过服务器快速搭建网站?完整步骤解析
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
如何设置并定期更换建站之星安全管理员密码?
攀枝花网站建设,攀枝花营业执照网上怎么年审?
建站中国官网:模板定制+SEO优化+建站流程一站式指南
网站制作壁纸教程视频,电脑壁纸网站?
大型企业网站制作流程,做网站需要注册公司吗?
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
婚礼视频制作网站,学习*后期制作的网站有哪些?
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
网站制作公司,橙子建站是合法的吗?
定制建站策划方案_专业建站与网站建设方案一站式指南
如何自定义建站之星模板颜色并下载新样式?
如何选择CMS系统实现快速建站与SEO优化?
自助网站制作软件,个人如何自助建网站?
建站主机与虚拟主机有何区别?如何选择最优方案?
简历在线制作网站免费,免费下载个人简历的网站是哪些?
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
网站制作员失业,怎样查看自己网站的注册者?
如何通过老薛主机一键快速建站?
css网站制作参考文献有哪些,易聊怎么注册?
如何在腾讯云服务器快速搭建个人网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。