网站首页 > 技术文章 正文
前言
本节我们使用uni app的底部导航功能,点击不同tab会显示不同页面,这个功能在实际项目开发中几乎是必备的。
一、基础知识
1.tabBar
如果应用是一个多 tab 应用,可以通过 tabBar 配置项指定 tab 栏的表现,以及 tab 切换时显示的对应页。
Tips
- 当设置 position 为 top 时,将不会显示 icon
- tabBar 中的 list 是一个数组,只能配置最少2个、最多5个 tab,tab 按数组的顺序排序。
- tabbar 切换第一次加载时可能渲染不及时,可以在每个tabbar页面的onLoad生命周期里先弹出一个等待雪花(hello uni-app使用了此方式)
- tabbar 的页面展现过一次后就保留在内存中,再次切换 tabbar 页面,只会触发每个页面的onShow,不会再触发onLoad。
- 顶部的 tabbar 目前仅微信小程序上支持。需要用到顶部选项卡的话,建议不使用 tabbar 的顶部设置,而是自己做顶部选项卡,可参考 hello uni-app->模板->顶部选项卡。
常用参数如下所示,更多内容见官网tabBar说明:https://uniapp.dcloud.io/collocation/pages?id=tabbar
属性类型必填默认值描述平台差异说明colorHexColor是tab 上的文字默认颜色selectedColorHexColor是tab 上的文字选中时的颜色backgroundColorHexColor是tab 的背景色borderStyleString否blacktabbar 上边框的颜色, 可选值 black/whiteApp 2.3.4+ 支持 其他颜色值listArray是tab 的列表,详见 list 属性说明, 最少2个、最多5个 tab
"tabBar": {
"color": "#7A7E83",
"selectedColor": "#3cc51f",
"borderStyle": "black",
"backgroundColor": "#ffffff",
"list": [{
"pagePath": "pages/component/index",
"iconPath": "static/image/icon_component.png",
"selectedIconPath": "static/image/icon_component_HL.png",
"text": "组件"
}, {
"pagePath": "pages/API/index",
"iconPath": "static/image/icon_API.png",
"selectedIconPath": "static/image/icon_API_HL.png",
"text": "接口"
}]
}
二、示例
将上一讲app02工程复制为app003,然后拖到HBuilder X中。
1.新建导航页面
右击pages
点击新建页面,选择默认模板
添加推荐页面、我的页面,完成后,页面如下
其中,navigationBarTitleText设置了主页标题。
2.配置底部导航
准备Tabar图标如下:
在pages.json文件中,增加Tabar配置如下:
"tabBar":{
"color":"#AAAAAA",
"selectedColor":"#007AFF",
"backgroundColor":"#FFFFFF",
"borderStyle":"black",
"list":[
{
"pagePath":"pages/index/index",
"text":"首页",
"iconPath":"static/home.png",
"selectedIconPath":"static/home_selected.png"
},
{
"pagePath":"pages/recommand/recommand",
"text":"推荐",
"iconPath":"static/recommand.png",
"selectedIconPath":"static/recommand_selected.png"
},
{
"pagePath":"pages/my/my",
"text":"我的",
"iconPath":"static/my.png",
"selectedIconPath":"static/my_selected.png"
}
]
}
三、运行
点击运行--->运行到浏览器--->Chome
web端显示如下:
点击按钮,切换为我的页面
Android具体运行过程不在描述,如有疑问,请看第一节,安装后界面如下:
寄语:无限风光在险峰!
猜你喜欢
- 2024-11-03 「大促最后1天」带你了解家庭的生命周期
- 2024-11-03 uniapp-权限处理(uniapp弹出通知权限)
- 2024-11-03 uniapp开发安卓应用踩坑记(uniapp开发项目)
- 2024-11-03 uniapp 触底加载更多数据的方法(uniapp上拉加载更多)
- 2024-11-03 《微信小程序开发从入门到实战》学习二十七
- 2024-11-03 uni-app plus.runtime.arguments 获取参数
- 2024-11-03 uniapp入门到进阶(必备知识扩展-1) - vue3你不知道的那些事
- 2024-11-03 遵义小红椒 带你进 uni-app 入坑指南
- 2024-11-03 uni-app从入门到进阶 系统完成项目实战
- 2024-11-03 4、类京东商城小程序_分类导航区域实现
- 最近发表
-
- 如何在 Linux 上安装 Java_怎么在linux中安装jdk
- Linux中tar命令打包路径相关问题_linux怎么用tar打包一个目录
- 常用linux系统常用扫描命令汇总_常用linux系统常用扫描命令汇总表
- VM下linux虚拟机新建过程(有图)_linux虚拟机创建新用户命令
- 系统小技巧:迁移通过Wubi方式安装的Ubuntu系统
- 文件系统(八):Linux JFFS2文件系统工作原理、优势与局限
- 如何利用ftrace精确跟踪特定进程调度信息
- prometheus网络监控之fping-exporter
- hyper linux的实操步骤,hyper-v批量管理工具的使用指南
- 2021年,运维工程师笔试真题(二)(附带答案)
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)