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

uni-app X 鸿蒙应用开发:tabBar 底部导航栏实现

介绍基于 uni-app X 技术栈在鸿蒙平台上实现 tabBar 底部导航栏的方法。通过配置 pages.json 和 theme.json,利用条件编译适配不同平台,支持浅色/深色模式。相比原生 ArkUI 开发,uni-app X 提供跨平台能力,一套代码多端运行,且渲染性能优异。

Elasticer发布于 2026/4/6更新于 2026/9/1082 浏览
uni-app X 鸿蒙应用开发:tabBar 底部导航栏实现

uni-app X 鸿蒙应用开发:tabBar 底部导航栏实现

项目概述

本文基于 uni-app X 技术栈,介绍在鸿蒙平台上实现 tabBar 底部导航栏的方法。uni-app X 是 DCloud 推出的新一代跨平台开发框架,支持将代码编译为多个平台的原生代码,包括 Android、iOS、鸿蒙 Next、Web 和小程序。

  • Android:编译为 Kotlin
  • iOS:编译为 Swift
  • 鸿蒙 Next:编译为 ArkTS
  • Web/小程序:编译为 JS

在 Android 平台,uni-app X 的工程被整体编译为 Kotlin 代码,本质上是换了 Vue 写法的原生 Kotlin 应用,性能与原生一致。

实现步骤

1. 环境准备

下载安装 HBuilderX 最新版本及 DevStudio 最新版本。

2. 目录结构准备

打开 HBuilderX 新建项目,选择 uniapp-x 模板。关键目录如下:

pages/
└── tabBar/
    ├── home.uvue      # 首页
    ├── zhihu.uvue     # 日报页
    └── mine.uvue      # 我的页面
static/
├── ic_tab_home.png        # 首页默认图标
├── ic_tab_active_home.png # 首页选中图标
├── ic_tab_ribao.png       # 日报默认图标
├── ic_tab_ribao_active.png# 日报选中图标
├── ic_tab_me.png          # 我的默认图标
└── ic_tab_active_me.png   # 我的选中图标

3. 配置 pages.json

在 pages.json 中定义页面和 tabBar。uni-app X 支持条件编译,可为不同平台配置不同的 tabBar 参数。

页面配置
{
  "pages": [
    {
      "path": "pages/tabBar/home",
      "style": {
        "navigationBarTitleText": "首页",
        "backgroundColorContent": "@tabBarPagebackgroundColorContent"
      }
    },
    {
      "path": "pages/tabBar/zhihu",
      "style": {
        "navigationBarTitleText": "日报",
        "backgroundColorContent": "@tabBarPagebackgroundColorContent"
      }
    },
    {
      "path": "pages/tabBar/mine",
      "style": {
        "navigationBarTitleText": "我的",
        "backgroundColorContent": "@tabBarPagebackgroundColorContent"
      }
    }
  ]
}
tabBar 配置

使用条件编译为鸿蒙平台单独配置:

// #ifndef APP-HARMONY
"tabBar": {
  "color": "@tabBarColor",
  "selectedColor": "@tabBarSelectedColor",
  "borderStyle": "@tabBarBorderStyle",
  "backgroundColor": "@tabBarBackgroundColor",
  "list": [
    {"pagePath": "pages/tabBar/home", "iconPath": "@tabBarHomeIconPath", "selectedIconPath": "@tabBarHomeSelectedIconPath", "text": "首页"},
    {"pagePath": "pages/tabBar/zhihu", "iconPath": "@tabBarZhiHuIconPath", "selectedIconPath": "@tabBarZhiHuSelectedIconPath", "text": "日报"},
    {"pagePath": "pages/tabBar/mine", "iconPath": "@tabBarMineIconPath", "selectedIconPath": "@tabBarMineSelectedIconPath", "text": "我的"}
  ]
}
// #endif
// #ifdef APP-HARMONY
"tabBar": {
  "color": "@tabBarColor",
  "selectedColor": "@tabBarSelectedColor",
  "borderStyle": "@tabBarBorderStyle",
  "backgroundColor": "@tabBarBackgroundColor",
  "list": [
    {"pagePath": "pages/tabBar/home", "iconPath": "static/ic_tab_home.png", "selectedIconPath": "static/ic_tab_active_home.png", "text": "首页"},
    {"pagePath": "pages/tabBar/zhihu", "iconPath": "static/ic_tab_ribao.png", "selectedIconPath": "static/ic_tab_ribao_active.png", "text": "日报"},
    {"pagePath": "pages/tabBar/mine", "iconPath": "static/ic_tab_me.png", "selectedIconPath": "static/ic_tab_active_me.png", "text": "我的"}
  ]
}
// #endif

4. 配置 theme.json

在 theme.json 中定义 tabBar 相关的主题变量,支持浅色和深色模式:

{
  "light": {
    "navigationBarTextStyle": "white",
    "navigationBarBackgroundColor": "#007AFF",
    "backgroundColorContent": "#efeff4",
    "tabBarPagebackgroundColorContent": "#efeff4",
    "backgroundColor": "#efeff4",
    "backgroundTextStyle": "dark",
    "tabBarColor": "#7A7E83",
    "tabBarSelectedColor": "#007AFF",
    "tabBarBorderStyle": "black",
    "tabBarBackgroundColor": "#F8F8F8",
    "tabBarHomeIconPath": "static/ic_tab_home.png",
    "tabBarHomeSelectedIconPath": "static/ic_tab_active_home.png",
    "tabBarZhiHuIconPath": "static/ic_tab_ribao.png",
    "tabBarZhiHuSelectedIconPath": "static/ic_tab_ribao_active.png",
    "tabBarMineIconPath": "static/ic_tab_me.png",
    "tabBarMineSelectedIconPath": "static/ic_tab_active_me.png"
  },
  "dark": {
    "navigationBarTextStyle": "white",
    "navigationBarBackgroundColor": "#1F1F1F",
    "backgroundColor": "#1F1F1F",
    "backgroundColorContent": "#646464",
    "tabBarPagebackgroundColorContent": "#1F1F1F",
    "backgroundTextStyle": "light",
    "tabBarColor": "#cacaca",
    "tabBarSelectedColor": "#007AFF",
    "tabBarBorderStyle": "white",
    "tabBarBackgroundColor": "#1F1F1F",
    "tabBarHomeIconPath": "static/ic_tab_home.png",
    "tabBarHomeSelectedIconPath": "static/ic_tab_active_home.png",
    "tabBarZhiHuIconPath": "static/ic_tab_ribao.png",
    "tabBarZhiHuSelectedIconPath": "static/ic_tab_ribao_active.png",
    "tabBarMineIconPath": "static/ic_tab_me.png",
    "tabBarMineSelectedIconPath": "static/ic_tab_active_me.png"
  }
}

技术要点

1. 条件编译

uni-app X 支持条件编译,可以为不同平台编写不同的代码。例如为鸿蒙平台配置专门的 tabBar。

2. 主题变量

通过 theme.json 定义主题变量,实现统一的主题管理,支持浅色和深色模式切换。

3. 图标资源

tabBar 图标资源放在 static 文件夹下,包括默认状态和选中状态的图标。

平台差异处理

  • 鸿蒙平台:uni-app X 将代码编译为 ArkTS,实现原生性能。单独配置了 tabBar,使用了直接的图标路径引用。
  • 其他平台:Android、iOS、Web、小程序上使用了主题变量来引用图标路径,方便管理主题。

优势分析

相比原生 ArkUI 开发,uni-app X 实现 tabBar 有以下优势:

  1. 跨平台:一套代码可在鸿蒙、Android、iOS、Web 和小程序运行。
  2. 开发效率高:使用 Vue 语法,学习成本低。
  3. 原生性能:编译为各平台原生代码,性能一致。
  4. 配置简单:通过 pages.json 配置即可实现 tabBar。
  5. 主题管理:支持通过 theme.json 统一管理主题。

总结

通过本文的介绍,我们了解了如何使用 uni-app X 在鸿蒙平台上实现 tabBar 底部导航栏。uni-app X 提供了简洁的配置方式,通过 pages.json 和 theme.json 即可完成 tabBar 的配置,相比原生 ArkUI 开发更加简单高效。同时,uni-app X 支持跨平台开发,大大提高了开发效率。

目录

  1. uni-app X 鸿蒙应用开发:tabBar 底部导航栏实现
  2. 项目概述
  3. 实现步骤
  4. 1. 环境准备
  5. 2. 目录结构准备
  6. 3. 配置 pages.json
  7. 页面配置
  8. tabBar 配置
  9. 4. 配置 theme.json
  10. 技术要点
  11. 1. 条件编译
  12. 2. 主题变量
  13. 3. 图标资源
  14. 平台差异处理
  15. 优势分析
  16. 总结

更多推荐文章

查看全部
  • 算法实战:归并排序与数组逆序对详解
  • 零售行业信息化建设方案:痛点与架构设计
  • 自主无人机硬件搭建及 EGOPlanner 实现
  • Python 入门:编写你的第一个程序
  • Python 3.14 无 GIL 模式解析:NumPy 3.0 适配与并发性能提升
  • Linux 部署 RocketMQ 及公网穿透实战
  • OpenClaw 开源 AI Agent 框架本地部署全流程
  • LIBERO 数据集详解:终身机器人学习与知识迁移基准
  • Java 基础语法:标识符、数据类型与变量详解
  • YOLOFuse 多模态融合算法原理与工程落地
  • Spring IoC 与 DI 核心概念及实战用法
  • uv 安装多个 Python 版本与使用方法(替代 pyenv + venv + pip)
  • ToB 垂直领域大模型的探索与实践:物流场景下的技术挑战与解决方案
  • 基于 OpenCvSharp 的无人机图像拼接技术指南
  • DeepSeek-OCR-WEBUI 部署与网页调用全流程实践
  • AI 产品经理工作全流程与模型构建实战指南
  • Faster-Whisper 本地实时语音识别部署实战
  • 腾讯大模型算法实习生面试题及解析
  • voxCPM-1.5-WEBUI 推理加速:GPU 利用率优化实践
  • Git 与 TortoiseGit 详细安装及使用指南

相关免费在线工具

  • 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