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

从人类视频到机器人跳舞:BeyondMimic 全流程解析与 rl_sar 部署实践

从人类视频到机器人跳舞:BeyondMimic 全流程解析与 rl_sar 部署实践

0. 前言 让人形机器人学会跳舞,听起来像是科幻电影中的场景,但在强化学习和运动模仿技术的推动下,这件事正在变得越来越现实。本文将完整介绍一条从"人类 RGB 视频"到"真实机器人跳舞"的技术链路:首先通过视觉算法从视频中提取人体运动轨迹,然后将人体模型重定向到机器人关节空间,接着在仿真环境中进行强化学习训练,最后在 MuJoCo 中验证并部署到真实的 Unitree G1 人形机器人上。 整条流程涉及四个核心开源项目:GVHMR(视频到人体模型)、GMR(人体到机器人重定向)、BeyondMimic(强化学习训练框架)、以及 rl_sar(仿真验证与真机部署框架)。本文不仅会逐一拆解每个环节的原理和操作步骤,还会深入分析 BeyondMimic 的算法设计,并详细记录将训练产物迁移到 rl_sar 项目中进行 sim2sim 和 sim2real 部署时遇到的关键问题与解决方案。 下图展示了

FPGA实现MIPI协议全解析 + MIPI协议完整时序规范

FPGA实现MIPI协议全解析 + MIPI协议完整时序规范

一、MIPI协议核心基础认知 百度网盘链接:https://pan.baidu.com/s/1rDsLAXGj8WbX82teSkhuIw?pwd=1234 提取码: 1234 包含FPGA系统学习资料,免费分享 1. MIPI协议定义与核心特点 MIPI(Mobile Industry Processor Interface,移动产业处理器接口)是由MIPI联盟制定的高速串行差分接口协议,最初为手机、平板等移动设备设计,目前广泛应用于FPGA/嵌入式的图像采集(摄像头)、显示驱动(液晶屏)、高速数据传输 场景。 核心特点: ✅ 采用差分信号传输,抗干扰能力强、EMI电磁辐射小; ✅ 支持高低速双模切换,兼顾高速大数据传输和低速控制指令传输; ✅ 串行传输,引脚数量极少(对比并行RGB的几十根引脚,MIPI仅需时钟+1~4路数据差分对),硬件设计简洁; ✅ 传输速率高:单lane(数据通道)速率可达1Gbps~

FPGA开发常用软件盘点:Vivado、Quartus、ModelSim全面对比

FPGA开发常用软件盘点:Vivado、Quartus、ModelSim全面对比

在FPGA开发过程中,EDA工具(Electronic Design Automation) 是工程师的生产力核心。不同厂商的FPGA芯片通常配套不同的开发工具,但在项目实践中,很多工程师往往会接触多种EDA软件。 本文将带你系统梳理三款FPGA开发中最常用的软件:Vivado、Quartus、ModelSim,从功能、适用场景、优缺点等多个维度进行全面对比,助你快速入门并合理选择。 一、Vivado —— Xilinx官方旗舰开发平台 1. 基本简介 Vivado是Xilinx(现为AMD)推出的综合性FPGA开发环境,主要面向7系列、UltraScale、Versal等高端FPGA器件。 它集成了综合、布局布线、时序分析、仿真、硬件调试等完整流程,是Xilinx FPGA开发的首选工具。 2. 核心功能 * RTL综合与实现:支持Verilog、VHDL和SystemVerilog,自动进行逻辑优化与布局布线。 * IP Integrator:可视化模块连接工具,适合SoC级设计。 * 仿真与调试:内置Vivado Simulator,也可外接ModelSim进行

Windows 10/11 部署 OpenClaw 完全指南:从环境搭建到机器人互联

摘要:本文详细介绍了在 Windows x64 架构下部署开源机器人控制框架 OpenClaw 的完整流程。针对 Windows 平台特有的 C++ 编译环境难题(sharp 库依赖),提供了“一键脚本”与“手动安装”双重解决方案,并深入解析了云端大模型配置与局域网稳定连接的核心技巧,助您快速打造高性能的机器人控制中枢。 📋 前言:为什么选择 Windows 部署? OpenClaw 是一个强大的开源机器人控制框架,支持语音交互、视觉感知与大模型决策。虽然 macOS 是开发者的首选,但 Windows 10/11 (x64) 凭借广泛的硬件兼容性和强大的 GPU 生态,同样是部署 OpenClaw 的优秀平台。 核心挑战: Windows 环境下最大的痛点在于 C++ 编译环境。OpenClaw 依赖的高性能图像处理库