HarmonyOS6 底部导航栏组件 rc_concave_tabbar 使用指南

HarmonyOS6 底部导航栏组件 rc_concave_tabbar 使用指南

文章目录

前言

rc_concave_tabbar 是一个功能强大、样式精美的 HarmonyOS 底部导航栏组件库,提供凹陷圆形动画效果样式,适用于多种场景。本篇将介绍 rc_concave_tabbar 的使用方法以及其相关的设计理念。

组件特性

  • 流畅动画:支持流畅的凹陷圆形切换动画效果
  • 高度定制:支持自定义背景色、字体颜色、高度等多种样式配置
  • 灵活配置:支持全局配置和单项配置,满足不同场景需求
  • 简单易用:API 设计简洁,快速集成到 HarmonyOS 项目中
  • 性能优化:动画流畅,性能表现优异

适用场景

  • 电商类应用底部导航
  • 社交类应用主页面切换
  • 内容资讯类应用导航栏
  • 工具类应用多功能入口
  • 需要精美底部导航动效的各类应用

使用说明

安装组件

rc_concave_tabbar 已发布到 OpenHarmony 三方库中心仓库中,访问地址为:https://ohpm.openharmony.cn/#/cn/detail/rc_concave_tabbar

安装步骤
  1. 添加依赖

在项目根目录下执行以下命令:

 ohpm install rc_concave_tabbar 
安装依赖
  1. 基本使用
步骤一:引入相关依赖

在需要使用组件的页面文件中,导入必要的类型和组件:

import{ TabMenusInterfaceIRequired, TabsConcaveCircle }from'rc_concave_tabbar'
步骤二:创建菜单数据

定义状态变量和菜单配置数据:

// 当前选择的菜单@State currentIndex:number=0;// 菜单数据@State TabsMenu: TabMenusInterfaceIRequired[]=[{ text:"首页", image:$r("app.media.index1"), selectImage:$r("app.media.index")},{ text:"分类", image:$r("app.media.classify1"), selectImage:$r("app.media.classify")},{ text:"发现", image:$r("app.media.find1"), selectImage:$r("app.media.find")},{ text:"我的", image:$r("app.media.resumeReview"), selectImage:$r("app.media.resumeReview1")}];

说明:

  • currentIndex:用于追踪当前选中的菜单索引
  • TabsMenu:菜单配置数组,每个对象代表一个菜单项
  • image:菜单项未选中时显示的图标资源
  • selectImage:菜单项选中时显示的图标资源
步骤三:使用导航组件

在页面的 build() 方法中集成 TabsConcaveCircle 组件:

build(){Column(){// 页面内容区域Column(){Text(`当前页面是${this.currentIndex}页面`).fontColor('#ffffff').fontWeight(900)}.alignItems(HorizontalAlign.Center).justifyContent(FlexAlign.Center).width('100%').layoutWeight(1)// 基本使用TabsConcaveCircle({ tabsMenu:this.TabsMenu, selectIndex: $currentIndex, tabsBgColor:'#ffffff', tabHeight:60, tabsSelectBgColor:'rgba(92, 187, 183, 1)', tabsFontColor: Color.Black, tabsSelectFontColor: Color.Blue })}.height('100%').width('100%').backgroundColor('#333333')}

代码说明:

  • tabsMenu:传入菜单配置数组
  • selectIndex:使用 $currentIndex 进行双向绑定,实现索引同步
  • tabsBgColor:设置导航栏背景颜色为白色
  • tabHeight:设置导航栏高度为 60vp
  • tabsSelectBgColor:设置选中球的填充颜色
  • tabsFontColor:设置未选中时的文字颜色
  • tabsSelectFontColor:设置选中时的文字颜色

运行效果

完成以上配置后,运行项目即可看到精美的凹陷圆形动画效果:

参数介绍

TabsConcaveCircle 组件参数

TabsConcaveCircle 是主要的导航栏组件,支持以下参数配置:

参数类型必填默认值说明
tabsMenuTabMenusInterfaceIRequired[]-导航菜单项数组,定义所有菜单项的配置
selectIndexnumber-当前选中的索引(使用 @Link 双向绑定)
tabHeightnumber60TabBar 高度(单位:vp)
tabsBgColorColor | string | Resourcergb(255, 255, 255)导航栏背景颜色,支持多种格式
tabsSelectBgColorColor | string | Resourcergba(92, 187, 183, 1)选中球的填充色,即凹陷圆形的颜色
tabsFontColorColor | string | ResourceColor.Black未选中时的字体颜色(全局配置)
tabsSelectFontColorColor | string | ResourceColor.Black选中时的字体颜色(全局配置)
animateTimenumber1000动画执行时长(单位:毫秒)

TabMenusInterfaceIRequired 菜单项配置

每个菜单项支持以下配置选项:

参数类型必填说明
textResource | string菜单文本,支持字符串或资源引用
imageResourceStr未选中时的图标资源路径
selectImageResourceStr选中时的图标资源路径(未设置时使用 image
tabsFontColorColor | string | Resource该项未选中时的字体颜色(优先级高于全局配置)
tabsSelectFontColorColor | string | Resource该项选中时的字体颜色(优先级高于全局配置)

进阶使用

自定义单个菜单项颜色

可以为特定菜单项设置独立的字体颜色,该配置优先级高于全局配置:

@State TabsMenu: TabMenusInterfaceIRequired[]=[{ text:"首页", image:$r("app.media.index1"), selectImage:$r("app.media.index"), tabsFontColor: Color.Gray, tabsSelectFontColor: Color.Red },// ... 其他菜单项];

调整动画速度

通过 animateTime 参数控制动画执行时长,单位为毫秒:

TabsConcaveCircle({ tabsMenu:this.TabsMenu, selectIndex: $currentIndex, animateTime:800// 设置为 800 毫秒,动画更快})

自定义高度和颜色

根据应用主题调整导航栏的视觉效果:

TabsConcaveCircle({ tabsMenu:this.TabsMenu, selectIndex: $currentIndex, tabHeight:70,// 增加高度 tabsBgColor:'#f5f5f5',// 浅灰色背景 tabsSelectBgColor:'#ff6b6b',// 红色选中球 tabsFontColor:'#666666',// 灰色文字 tabsSelectFontColor:'#ffffff'// 白色选中文字})

注意事项

  1. 双向绑定selectIndex 参数必须使用 $ 符号进行双向绑定,确保索引状态实时同步
  2. 图标资源:确保所有引用的图标资源已正确添加到项目中,否则会导致显示异常
  3. 类型导入:必须导入 TabMenusInterfaceIRequired 类型,否则 TypeScript 会报类型错误
  4. 颜色格式:颜色参数支持多种格式:
    • Color 枚举:Color.BlackColor.Blue
    • 十六进制字符串:'#ffffff''#000000'
    • RGB/RGBA:'rgb(255, 255, 255)''rgba(92, 187, 183, 1)'
    • 资源引用:$r('app.color.primary')
  5. 性能优化
    • 避免频繁修改 TabsMenu 数组,建议在组件初始化时一次性配置
    • 图标资源大小应适中,避免使用过大的图片文件

总结

rc_concave_tabbar 是一款专为 HarmonyOS 设计的高质量底部导航栏组件,其独特的凹陷圆形动画效果为应用增添了现代感和交互趣味性。
无论是开发电商、社交、资讯还是工具类应用,rc_concave_tabbar 都能为你的项目提供专业级的底部导航解决方案。
开始使用 rc_concave_tabbar,让你的 HarmonyOS 应用拥有更出色的导航体验!

Read more

一键部署Z-Image-Turbo:云端AI绘画不求人

一键部署Z-Image-Turbo:云端AI绘画不求人 你是不是也遇到过这样的场景:脑子里有个绝妙的画面,想把它画出来,但要么不会画画,要么打开专业绘图软件折腾半天,最后出来的效果还不如想象力的十分之一? 或者,作为内容创作者、电商运营,每天需要大量配图、海报,找图库要花钱,自己设计又太费时间,效率低得让人抓狂。 今天,我要给你介绍一个“神器”——Z-Image-Turbo 极速云端创作室。它不是一个复杂的软件,而是一个打包好的云端AI绘画应用。你不需要懂代码,不需要配置环境,甚至不需要高性能电脑,只需要点几下鼠标,就能拥有一个属于你自己的、能秒级生成高清大图的AI画室。 这听起来是不是有点不可思议?别急,跟着我,10分钟你就能亲手把它搭建起来,并画出第一张作品。 1. 为什么你需要这个“云端画室”? 在深入动手之前,我们先搞清楚,这个工具到底能帮你解决什么问题。 1.1 传统AI绘画的三大痛点 如果你之前尝试过一些AI绘画工具,可能会对这几个问题深有体会: 1. 部署复杂:想用开源的Stable Diffusion?光是安装Python、

无人机视觉语言导航从入门到精通(一):什么是无人机视觉语言导航

无人机视觉语言导航从入门到精通(一):什么是无人机视觉语言导航 摘要 视觉语言导航(Vision-Language Navigation, VLN)是人工智能领域的前沿研究方向,它使智能体能够根据自然语言指令,在视觉环境中自主导航至目标位置。当这一技术应用于无人机平台时,便形成了无人机视觉语言导航(UAV Vision-Language Navigation)这一新兴研究领域。本文作为系列博客的开篇,将系统介绍视觉语言导航的基本概念、问题形式化定义、核心挑战、应用场景,并对整个系列的内容进行导读。 关键词:视觉语言导航、无人机、多模态学习、具身智能、自然语言处理 一、引言 1.1 从一个场景说起 设想这样一个场景:你站在一个陌生城市的街头,手中拿着一架小型无人机。你对无人机说:"飞到前方那栋红色建筑的左侧,然后沿着河边向北飞行,在第二座桥附近降落。"无人机收到指令后,自主起飞,识别周围环境中的建筑、河流、桥梁等地标,规划路径,最终准确到达你所描述的位置。

【福利教程】一键解锁 ChatGPT / Gemini / Spotify 教育权益!TG 机器人全自动验证攻略

想要免费使用 ChatGPT 教师版(直至 2027 年)?想白嫖 Gemini Advanced 一年?还是想以学生优惠价订阅 Spotify? 无需繁琐的资料证明,现在只需要一个 Telegram 机器人,即可自动化完成 SheerID 身份认证,轻松解锁各类教育版专属福利! 🎁 你能获取哪些权益? 通过此机器人协助验证,你可以获取以下顶级服务的教育/学生权益: 1. 🤖 ChatGPT K-12 教师版 * 权益:美国 K-12 教育工作者专属福利,相当于 Plus 会员体验。 * 有效期:免费使用至 2027 年 6 月。 1. ✨ Gemini One Pro (教育版) * 权益:Google 最强 AI

Ubuntu搭建PX4无人机仿真环境(5) —— 仿真环境搭建(以Ubuntu 22.04,ROS2 Humble,Micro XRCE-DDS Agent为例)

Ubuntu搭建PX4无人机仿真环境(5) —— 仿真环境搭建(以Ubuntu 22.04,ROS2 Humble,Micro XRCE-DDS Agent为例)

目录 * 前言 * 1. 准备 * 1.1 下载 PX4 源码 * 方式一: * 方式二: * 1.2 安装仿真依赖 * 1.3 安装 Gazebo * 2. 安装 Micro XRCE-DDS Agent * 3. 编译 PX4 * 4. 通信测试 * 5. 官方 offboard 程序 * 6. offboard 测试 * 参考 前言 本教程基于 ROS2 ,在搭建之前,需要把 ROS2、QGC 等基础环境安装配置完成。但是这块的资料相比较于 ROS1 下的少很多,不利于快速上手和后期开发,小白慎选! 小白必看: