046b254a创建于 2025年10月21日历史提交

uni-app 鸿蒙标题栏开发指南

标题栏概述

标题栏是应用的重要组成部分,提供导航功能和品牌展示。在 uni-app 鸿蒙开发中,标题栏的配置和自定义需要特别注意鸿蒙平台的特性。

基础配置

1. pages.json 配置

{
  "pages": [
    {
      "path": "pages/index/index",
      "style": {
        "navigationBarTitleText": "首页",
        "navigationBarBackgroundColor": "#007AFF",
        "navigationBarTextStyle": "white"
      }
    }
  ]
}

2. 全局配置

{
  "globalStyle": {
    "navigationBarTextStyle": "black",
    "navigationBarTitleText": "uni-app",
    "navigationBarBackgroundColor": "#F8F8F8"
  }
}

鸿蒙平台特殊配置

1. 状态栏适配

{
  "style": {
    "navigationBarTitleText": "标题",
    "navigationStyle": "default",
    "app-plus": {
      "titleNView": {
        "backgroundColor": "#007AFF",
        "titleText": "标题",
        "titleColor": "#FFFFFF"
      }
    },
    "h5": {
      "titleNView": {
        "backgroundColor": "#007AFF",
        "titleText": "标题",
        "titleColor": "#FFFFFF"
      }
    }
  }
}

2. 自定义标题栏

<template>
  <view class="custom-navbar">
    <view class="navbar-content">
      <text class="navbar-title">自定义标题</text>
    </view>
  </view>
</template>

<style>
.custom-navbar {
  height: 44px;
  background-color: #007AFF;
  display: flex;
  align-items: center;
  justify-content: center;
}

.navbar-content {
  flex: 1;
  text-align: center;
}

.navbar-title {
  color: #FFFFFF;
  font-size: 17px;
  font-weight: 600;
}
</style>

高级功能

1. 动态标题

// 动态修改标题
uni.setNavigationBarTitle({
  title: '新标题'
});

// 获取当前标题
uni.getNavigationBarTitle({
  success: function (res) {
    console.log(res.title);
  }
});

2. 标题栏按钮

{
  "style": {
    "navigationBarTitleText": "标题",
    "navigationBarRightButton": {
      "text": "更多",
      "iconPath": "static/more.png",
      "onclick": "onMoreClick"
    }
  }
}

3. 返回按钮自定义

// 自定义返回逻辑
onBackPress() {
  // 自定义返回逻辑
  uni.showModal({
    title: '提示',
    content: '确定要离开吗?',
    success: function (res) {
      if (res.confirm) {
        uni.navigateBack();
      }
    }
  });
  return true; // 阻止默认返回行为
}

样式定制

1. 颜色配置

/* 鸿蒙平台特殊样式 */
/* #ifdef APP-HARMONY */
.navigation-bar {
  background-color: #007AFF;
  color: #FFFFFF;
}
/* #endif */

2. 字体设置

.navbar-title {
  font-family: 'HarmonyOS Sans';
  font-weight: 500;
  letter-spacing: 0.5px;
}

3. 响应式设计

@media screen and (max-width: 750px) {
  .navbar-title {
    font-size: 16px;
  }
}

最佳实践

1. 一致性设计

  • 保持所有页面标题栏风格一致
  • 使用统一的颜色和字体规范
  • 确保在不同设备上的显示效果

2. 用户体验

  • 标题文字简洁明了
  • 避免过长的标题文字
  • 合理使用图标和按钮

3. 性能优化

  • 避免频繁修改标题栏样式
  • 使用条件编译优化不同平台
  • 合理使用缓存机制

常见问题

Q: 标题栏在鸿蒙设备上显示异常?

A: 检查状态栏高度适配和颜色配置。

Q: 如何实现透明标题栏?

A: 设置 navigationBarBackgroundColor 为透明色值。

Q: 自定义标题栏如何适配不同屏幕?

A: 使用响应式设计和条件编译。

相关资源

总结

标题栏开发是 uni-app 鸿蒙应用的重要组成部分,需要综合考虑平台特性、用户体验和性能优化。通过合理配置和自定义,可以创建出既美观又实用的标题栏效果。