零基础微信小程序开发——全局配置之tabBar(保姆级教程+超详细)

在这里插入图片描述

🎥 作者简介: CSDN\阿里云\腾讯云\华为云开发社区优质创作者,专注分享大数据、Python、数据库、人工智能等领域的优质内容
🌸个人主页: 长风清留杨的博客
🍃形式准则: 无论成就大小,都保持一颗谦逊的心,尊重他人,虚心学习。
推荐专栏: Python入门到入魔,Mysql入门到入魔,Python入门基础大全,Flink入门到实战
🍂若缘分至此,无法再续相逢,愿你朝朝暮暮,皆有安好,晨曦微露道早安,日中炽热说午安,星河长明寄晚安🍂

全局配置

小程序开发中的全局配置文件是app.json,它位于小程序的根目录下。这个文件非常重要,因为它包含了小程序的一些基础信息和全局配置。

tabBar

什么是 tabBar

tabBar是移动端应用中一种常见的页面效果,它主要用于实现多个页面之间的快速切换。在小程序开发中,tabBar同样扮演着非常重要的角色。小程序中的tabBar通常被分为底部tabBar和顶部tabBar两种类型。

  1. 底部tabBar:
    • 底部tabBar是小程序中最为常见的一种tabBar类型。它位于屏幕的底部,用户可以通过点击不同的选项卡来切换不同的页面。
    • 底部tabBar中至少需要配置两个选项卡,最多可以配置五个选项卡。这些选项卡通常包括图标和文本,以直观地表示每个页面的功能和内容。
    • 底部tabBar的选项卡可以自定义样式,包括图标的颜色、文本的颜色、背景色等,以满足不同小程序的设计需求。
  2. 顶部tabBar:
    • 顶部tabBar相对较少见,它位于屏幕的顶部,用于实现页面的切换。
    • 与底部tabBar不同的是,当渲染顶部tabBar时,不显示图标,只显示文本。这可能是因为顶部空间有限,且用户通常更习惯于在底部进行页面切换操作。
    • 顶部tabBar的样式和配置相对较少,通常只包括文本和分隔线等简单元素。

注意:

  • tabBar中只能配置最少 2 个、最多 5 个 tab 页签
  • 当渲染顶部 tabBar 时,不显示 icon,只显示文本,也就是如果渲染顶部的话,不会出现图片,直接先是文字部分,例如首页、消息、联系我们

tabBar 的 6 个组成部分

  1. backgroundColor:这个属性用于设置tabBar的背景颜色。背景颜色被设置为红色。它定义了tabBar的整体背景色调,是用户体验中不可或缺的一部分,可以影响整个界面的视觉效果。
  2. selectedIconPath:这个属性指定了当tab项被选中时,显示的图标路径。选中时的图标被设置为一个蓝色的三角形图标。这个图标在用户与界面交互时提供了直观的视觉反馈。
  3. borderColor:这个属性用于设置tabBar上边框的颜色。在示例中,边框颜色被设置为黑色。边框可以增强tabBar的视觉边界,使其在页面上更加突出。
  4. iconPath:这个属性指定了当tab项未被选中时,显示的图标路径。未选中时的图标被设置为一个灰色的圆形图标。这个图标在默认情况下展示给用户,提供了关于tab功能的直观信息。
  5. selectedColor:这个属性用于设置tab上文字在选中时的颜色。选中时的文字颜色被设置为绿色。这有助于用户区分当前活动的tab项。
  6. color:这个属性用于设置tab上文字的默认(未选中)颜色。未选中时的文字颜色被设置为紫色。这为用户提供了关于哪些tab项是可用的直观信息。

tabBar 节点的配置项

属性类型必填默认值描述
positionStringbottomtabBar 的位置,支持 bottom(底部)或 top(顶部),但通常默认且更常见的是底部。
borderStyleStringblacktabBar 上边框的颜色,仅支持 black(黑色)或 white(白色),用于设置边框的显示颜色。
colorHexColor-tab 上文字的默认(未选中)颜色,使用十六进制颜色代码进行定义。
selectedColorHexColor-tab 上的文字选中时的颜色,同样使用十六进制颜色代码进行定义,用于区分选中状态的文字颜色。
backgroundColorHexColor-tabBar 的背景色,使用十六进制颜色代码进行定义,用于设置工具栏的背景色调。
listArray-tab 页签的列表,是一个数组类型,包含了多个 tab 项的配置信息,最少需要配置2个 tab,最多可配置5个 tab,以满足用户界面的导航需求。

每个 tab 项的配置选项

属性类型必填描述
pagePathString页面路径,页面必须在 pages 中预先定义
textStringtab 上显示的文字
iconPathString未选中时的图标路径;当 position 为 top 时,不显示 icon
selectedIconPathString当 position 为 top 时,不显示 icon(选中状态)

实战一下

需求

预期能达到以下效果,有底部的tabBar、分别是首页、消息、个人中心,选中之前是没有填充颜色的图标,选中后是填充颜色的图标

实现步骤
  1. 拷贝图标资源:
    需要将每个页面所需要的图标准备好,对应三组,分别是选中状态和非选中状态
  2. 新建 3 个对应的 tab 页面
    三个页面分别对应首页、信息、个人中心
  3. 配置 tabBar 选项
第一步拷贝图标

这些是需要的图标,可以看到选中是深色有填充的,没有选中是浅色没有填充的,那我们命名的时候可以这样名称,没有选中的默认为自己的名字,例如home,选中的加上 -active,例如home-active

需要原版图标的话直接私信我,或者关注公众号:小白的大数据之旅

第二步:新建 3 个对应的 tab 页面

三个tab页面分别是首页、消息和个人中心

在app.js中添加如下内容

  1. home 是首页
  2. message 是消息页面
  3. individual 是个人中心页面
{"pages": ["pages/home/home","pages/message/message","pages/individual/individual"]
}

编写完上面的代码之后保存,对应的目录会自动创建

第三步:设置tabBar

在app.js中分别设置首页、消息、个人中心的页面,下面是app.json的源代码

{// 定义一个数组,用于存放小程序中所有页面的路径"pages": ["pages/home/home",          // 首页页面路径"pages/message/message",    // 消息页面路径"pages/individual/individual", // 个人中心页面路径"pages/index/index",        // 索引页面路径(通常作为默认页面,但这里可能用作其他用途)"pages/test/test",          // 测试页面路径"pages/logs/logs"           // 日志页面路径],// 定义小程序窗口的表现"window": {"backgroundTextStyle": "dark",     // 下拉 loading 的样式,dark 为深色背景,light 为浅色背景"navigationBarBackgroundColor": "#2b4b6b", // 导航栏背景颜色"navigationBarTitleText": "公众号:小白的大数据之旅", // 导航栏标题文字"navigationBarTextStyle": "white", // 导航栏标题文字颜色"backgroundColor": "#efefef",      // 页面背景颜色"onReachBottomDistance": 100       // 页面上拉触底事件触发时距离页面底部距离},// 定义小程序底部标签栏的表现"tabBar": {"list": [{"pagePath": "pages/home/home",    // 页面路径,首页路径"text": "首页",                  // 标签栏上显示的文字"iconPath": "/images/tabs/home.png", // 未选中时的图标路径"selectedIconPath": "/images/tabs/home-active.png" // 选中时的图标路径},{"pagePath": "pages/message/message", // 页面路径,消息页面路径"text": "消息",                       // 标签栏上显示的文字"iconPath": "/images/tabs/mess.png", // 未选中时的图标路径"selectedIconPath": "/images/tabs/mess-active.png" // 选中时的图标路径},{"pagePath": "pages/individual/individual",  // 页面路径,个人中心页面路径"text": "个人中心",                          // 标签栏上显示的文字"iconPath": "/images/tabs/individual.png",  // 未选中时的图标路径"selectedIconPath": "/images/tabs/individual-active.png"// 选中时的图标路径}]},// 小程序使用的样式版本,v2为推荐的最新版本"style": "v2",// 指明 sitemap.json 文件的位置,该文件用于配置小程序内搜索"sitemapLocation": "sitemap.json"
}

结果:


可以尝试点击下面的三个按钮,看看是什么样的效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/65457.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年12月HarmonyOS应用开发者高级认证全新题库

注意事项:切记在考试之外的设备上打开题库进行搜索,防止切屏三次考试自动结束,题目是乱序,每次考试,选项的顺序都不同,作者已于2024年12月15日又更新了一波题库,题库正确率99%! 新版…

【网络协议】IPv4 地址分配 - 第二部分

前言 在第 1 部分中,我们学习了 IPv4 地址的分配方式,了解了各种类型的 IPv4 地址,并进行了基础的子网划分(Subnetting)。在第 2 部分中,我们将继续学习子网划分,并引入一些新的概念。 【网络…

浙江安吉成新的分布式光伏发电项目应用

摘 要:分布式光伏发电站是指将光伏发电组件安装在用户的建筑物屋顶、空地或其他适合的场地上,利用太阳能进行发电的一种可再生能源利用方式,与传统的大型集中式光伏电站相比,分布式光伏发电具有更灵活的布局、更低的建设成本和更高…

7z 安装与使用指南

文章目录 1. 安装 7z1.1 在 Linux 上安装 7z对于 Debian/Ubuntu 系统:对于 CentOS/RHEL 系统:对于 Fedora 系统:对于 Arch Linux 系统: 1.2 在 Windows 上安装 7z 2. 使用 7z 进行压缩和解压2.1 压缩文件示例:压缩一个…

scanf:数据之舟的摆渡人,静卧输入港湾的诗意守候

大家好啊,我是小象٩(๑ω๑)۶ 我的博客:Xiao Xiangζั͡ޓއއ 很高兴见到大家,希望能够和大家一起交流学习,共同进步。* 这一节我们主要来学习scanf的基本用法,了解scanf返回值,懂得scanf占位符和赋值…

【ROS2】Arduino系列之电机驱动实现

内容学自:赵虚左老师。学后总结! 实现机器人移动的一种策略是:控制系统会先发布预期的车辆速度信息,然后驱动系统订阅到该信息,不断调整电机转速直至达到预期速度,调速过程中还需要时时获取实际速度并反馈…

119.使用AI Agent解决问题:Jenkins build Pipeline时,提示npm ERR! errno FETCH_ERROR

目录 1.Jenkins Build时的错误 2.百度文心快码AI智能体帮我解决 提问1:jenkins中如何配置npm的源 提问2:jenkins pipeline 类型为pipeline script from SCM时,如何配置npm源 3.最终解决方法-Jenkinsfile的修改 4.感触 1.Jenkins Build时…

Java 日期时间格式化标准

文章目录 Java日期时间格式化符号ISO 8601中的日期时间ISO 8601标准的定义ISO 8601日期时间格式 周数年份ISO 8601中的周数年份Java中的周数年份 Java跨年日期格式化BUG注意事项 Java日期时间格式化符号 JDK官网截图: 格式化符号梳理: 符号描述符号用…

高山旅游景区有效降低成本,无人机山下到山上物资吊运技术详解

在高山旅游景区,传统的物资运输方式往往面临人力成本高昂、效率低下等问题,而无人机技术的引入为这一难题提供了新的解决方案。以下是对无人机从山下到山上进行物资吊运技术的详细解析: 一、无人机物资吊运技术的优势 1. 降低人力成本&#…

Python爬虫 - 豆瓣图书数据爬取、处理与存储

文章目录 前言一、使用版本二、需求分析1. 分析要爬取的内容1.1 分析要爬取的单个图书信息1.2 爬取步骤1.2.1 爬取豆瓣图书标签分类页面1.2.2 爬取分类页面1.2.3 爬取单个图书页面 1.3 内容所在的标签定位 2. 数据用途2.1 基础分析2.2 高级分析 3. 应对反爬机制的策略3.1 使用 …

深度学习——回归实战

线性回归: 线性:自变量和应变量之间是线性关系,如:y wx b 回归:拟合一条曲线,使真实值和拟合值差距尽可能小 目标:求解参数w和b 所用算法:梯度下降算法 梯度下降&#…

单片机-串转并-74HC595芯片

1、74HC595芯片介绍 74HC595 是一个 8 位串行输入、并行输出的位移缓存器,其中并行输出为三态输出(即高电平、低电平和高阻抗)。 15 和 1 到 7 脚 QA--QH:并行数据输出 9 脚 QH 非:串行数据输出 10 脚 SCLK 非&#x…

探索AI在地质科研绘图中的应用:ChatGPT与Midjourney绘图流程与效果对比

文章目录 个人感受一、AI绘图流程1.1 Midjourney(1)环境配置(2)生成prompt(3)完善prompt(4)开始绘图(5)后处理 1.2 ChatGPT不合理的出图结果解决方案 二、主题…

【微服务】6、限流 熔断

线程隔离与容错处理 本视频主要讲解了在购物车业务中,因商品微服务响应慢导致的问题及解决方案,重点介绍了线程隔离后查询购物车业务不可用的情况,以及如何通过Fallback逻辑进行缓解,包括配置Feign调用为簇点资源、添加Fallback逻…

25年01月HarmonyOS应用基础认证最新题库

判断题 “一次开发,多端部署”指的是一个工程,一次开发上架,多端按需部署。为了实现这一目的,HarmonyOS提供了多端开发环境,多端开发能力以及多端分发机制。 答案:正确 《鸿蒙生态应用开发白皮书》全面阐释…

ELK实战(最详细)

一、什么是ELK ELK是三个产品的简称:ElasticSearch(简称ES) 、Logstash 、Kibana 。其中: ElasticSearch:是一个开源分布式搜索引擎Logstash :是一个数据收集引擎,支持日志搜集、分析、过滤,支持大量数据…

Dubbo-笔记随记一

一、实战 1 . Springboot整合 1.1 服务提供者 1.1.1 依赖 <dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>3.2.10</version></dependency><dependency&g…

ETCD渗透利用指南

目录 未指定使用put操作报错 未指定操作版本使用get报错 首先etcd分为两个版本v2和v3&#xff0c;不同的API结果无论是访问URL还是使用etcdctl进行通信&#xff0c;都会导致问题&#xff0c;例如使用etcdctl和v3进行通信&#xff0c;如果没有实名ETCDCTL_API3指定API版本会直接…

使用VUE3创建个人静态主页

使用VUE3创建个人静态主页 &#x1f31f; 前言&#x1f60e;体验&#x1f528; 具体实现✨ 核心功能&#x1f3d7;️ 项目结构&#x1f680; 用这个项目部署 Git Page &#x1f4d6; 参考 &#x1f31f; 前言 作为开发者或者内容创作者&#xff0c;我们经常需要创建静态网页&a…

llm大模型学习

llm大模型 混合专家模型&#xff08;MoE&#xff09;MoE结构路由router专家expertSwitch Transformer的典型MOE模型最后MoE总结 混合专家模型&#xff08;MoE&#xff09; 模型规模是提升LLM大语言模型性能的关键因素&#xff0c;但也会增加计算成本。Mixture of Experts (MoE…