跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
TypeScript大前端

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

rc_concave_tabbar 是 HarmonyOS 底部导航栏组件库,提供凹陷圆形动画效果样式。支持自定义背景色、字体颜色、高度等样式配置。通过 ohpm 安装后,在页面中导入 TabsConcaveCircle 组件并传入菜单数据即可使用。支持双向绑定选中索引,可调整动画速度及单项颜色。适用于电商、社交、资讯类应用的底部导航场景。

编程诗人发布于 2026/4/6更新于 2026/7/539 浏览
HarmonyOS 底部导航栏组件 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 双向绑定)
tabHeightnumber否60TabBar 高度(单位:vp)
tabsBgColor`ColorstringResource`否
tabsSelectBgColor`ColorstringResource`否
tabsFontColor`ColorstringResource`否
tabsSelectFontColor`ColorstringResource`否
animateTimenumber否1000动画执行时长(单位:毫秒)

TabMenusInterfaceIRequired 菜单项配置

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

参数类型必填说明
text`Resourcestring`是
imageResourceStr是未选中时的图标资源路径
selectImageResourceStr否选中时的图标资源路径(未设置时使用 image)
tabsFontColor`ColorstringResource`
tabsSelectFontColor`ColorstringResource`

进阶使用

自定义单个菜单项颜色

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

@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.Black、Color.Blue 等
    • 十六进制字符串:'#ffffff'、'#000000' 等
    • RGB/RGBA:'rgb(255, 255, 255)'、'rgba(92, 187, 183, 1)' 等
    • 资源引用:$r('app.color.primary') 等
  5. 性能优化:
    • 避免频繁修改 TabsMenu 数组,建议在组件初始化时一次性配置
    • 图标资源大小应适中,避免使用过大的图片文件

总结

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

目录

  1. 前言
  2. 组件特性
  3. 适用场景
  4. 使用说明
  5. 安装组件
  6. 安装步骤
  7. 步骤一:引入相关依赖
  8. 步骤二:创建菜单数据
  9. 步骤三:使用导航组件
  10. 参数介绍
  11. TabsConcaveCircle 组件参数
  12. TabMenusInterfaceIRequired 菜单项配置
  13. 进阶使用
  14. 自定义单个菜单项颜色
  15. 调整动画速度
  16. 自定义高度和颜色
  17. 注意事项
  18. 总结
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 从 AI 绘图到 AI 视频:2026 内容创作者进阶之路
  • Midjourney AI 绘图工具使用指南与基础操作教程
  • 中小团队低成本搭建项目管理系统:Ubuntu 下 DooTask 私有化部署实战
  • Windows 下 MinIO 服务搭建与 Web 控制台访问指南
  • 前端微前端:大型应用的模块化解决方案
  • 数据结构初阶:顺序表、链表与时间空间复杂度
  • DownGit:GitHub 文件夹精准下载工具
  • C++ 备忘录模式:优雅实现对象状态保存与恢复
  • Windows 下 VSCode 配置 C/C++ 开发环境完整指南
  • Gazebo 机器人三维物理仿真平台详解
  • 二叉树前中后序遍历:递归与迭代实现详解
  • 单链表常见算法题解析:反转、合并与环检测
  • 使用 Java 将 PDF 转换为 Excel:基础转换与高级设置
  • Windows 环境下 Git 的下载、安装与配置指南
  • Spring Cloud 微服务架构概述与工程搭建
  • LeetCode 160 相交链表
  • 2026 年 3 月 AI 领域动态:多模态模型与开源生态热点梳理
  • 程序员转行大模型领域:热门岗位与学习路径解析
  • GESP 2025 年 12 月 C++ 七级认证真题与解析(单选题 1-7)
  • 【Copy Web独立开发者实战:我是如何用 AI 实现网页 UI 1:1 完美复刻的?】

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online