当前位置: 首页 > news >正文

React Native 基础tabBar和自定义tabBar - bottom-tabs

一、基础TabBar
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs'// ...
const BottomTabBar = createBottomTabNavigator()return (<View style={{width: '100%', height: '100%'}}><BottomTabBar.NavigatorscreenOptions={({route}) => {console.log('res:', route)return {tabBarIcon: ({focused, color, size}) => {let name = focused ? `${route.name}Active` : route.namereturn (<Image style={{width: size, height: size, tintColor: color}}source={IconTabMap[name]} />)}}}}  ><BottomTabBar.Screenname='Home'component={Home}options={{title: '首页',headerShown: false,tabBarActiveTintColor: '#ff2442',tabBarInactiveTintColor: '#999'}}/><BottomTabBar.Screenname='Shop'component={Shop}options={{title: '购物车',headerShown: false,tabBarActiveTintColor: '#ff2442',tabBarInactiveTintColor: '#999'}}/><BottomTabBar.Screenname='Message'component={Message}options={{title: '消息',headerShown: false,tabBarActiveTintColor: '#ff2442',tabBarInactiveTintColor: '#999'}}/><BottomTabBar.Screenname='Mine'component={Mine}options={{title: '我的',headerShown: false,tabBarActiveTintColor: '#ff2442',tabBarInactiveTintColor: '#999'}}/></BottomTabBar.Navigator></View>
)

在这里插入图片描述

二、自定义TabBar
const TabBarRender = ({state, descriptors, navigation}) => {// index:当前选中const { routes, index } = statereturn (<View style={styles.tabBar}>{routes.map((route, i) => {// route -> {key, name, params}// descriptors->{key值: {navigation, options(Screen上的options值), route, render}}console.log('descriptors', descriptors[route.key])const { options: { title } } = descriptors[route.key]const isActive = index === iif (i === 2) {return (<TouchableOpacityactiveOpacity={0.7}onPress={() => {// ....}}><Imagestyle={styles.img}source={IconAdd}/></TouchableOpacity>)}return (<TouchableOpacitystyle={styles.tabItem}key={`tab-item-${i}`}activeOpacity={0.7}onPress={() => {navigation.navigate(route.name)}}><Text style={[styles.text, isActive ? styles.textActive : {}]}>{ title }</Text></TouchableOpacity>)})}</View>)}// ...
<BottomTabBar.NavigatortabBar={props => <TabBarRender {...props} />} // 自定义
><BottomTabBar.Screenname='Home'component={Home}options={{title: '首页',headerShown: false,}}/><BottomTabBar.Screenname='Shop'component={Shop}options={{title: '购物车',headerShown: false,}}/><BottomTab.Screenname='Add'component={Shop}options={{title: '新增',headerShown: false,}}/><BottomTabBar.Screenname='Message'component={Message}options={{title: '消息',headerShown: false,}}/><BottomTabBar.Screenname='Mine'component={Mine}options={{title: '我的',headerShown: false,}}/>
</BottomTabBar.Navigator>

在这里插入图片描述

http://www.dtcms.com/a/283894.html

相关文章:

  • Python编程进阶知识之第二课学习网络爬虫(requests)
  • 【真·CPU训模型!】单颗i7家用本,4天0成本跑通中文小模型训练!Xiaothink-T6-mini-Preview 技术预览版开源发布!
  • 对话弋途科技:当AI重构汽车大脑,一场车载操作系统的“觉醒年代“开始了
  • 【理想汽车智驾方案介绍专题 -1】端到端+VLM 方案介绍
  • 113:路径总和 II
  • Go语言时间控制:定时器技术详细指南
  • uni-app 配置华为离线推送流程
  • Go语言高并发聊天室(三):性能优化与压力测试
  • 【物联网】基于树莓派的物联网开发【11】——树莓派无法启动修复解决方案
  • Transformer从入门到精通
  • Spring Boot整合阿里云OSS企业级实践:高可用文件存储解决方案
  • 【Docker基础】Docker-compose基础认知:从核心概念到实战解析
  • 闽南话里的俗语(俚语、谚语、歇后语)
  • S7-1200 模拟量模块全解析:从接线到量程计算
  • 苍穹外卖项目日记(day11)
  • Linux内核ICMP协议实现深度解析:网络控制的智慧引擎
  • 《C++初阶之STL》【auto关键字 + 范围for循环 + 迭代器】
  • 基于typescript严格模式以实现undo和redo功能为目标的命令模式代码参考
  • Python-TCP编程-UDP编程-SocketServer-IO各种概念及多路复用-asyncio-学习笔记
  • 从0开始学习R语言--Day49--Lasso-Cox 回归
  • 在UniApp中防止页面上下拖动的方法
  • git@github.com: Permission denied (publickey).
  • 算法竞赛备赛——【图论】求最短路径——Dijkstra
  • 排序算法—交换排序(冒泡、快速)(动图演示)
  • uniapp问题总结
  • 并发事务~
  • 一种融合人工智能与图像处理的发票OCR技术,将人力从繁琐的票据处理中解放
  • 视频安全新思路:VRM视频分片错序加密技术
  • 小架构step系列17:getter-setter-toString
  • 智能视频分析:多行业安全防控的“AI之眼”