uniapp navigationBarBackgroundColor 如何设置导航栏背景颜色

在uniapp中,如何设置navigationBarBackgroundColor来改变导航栏的背景颜色?我尝试在pages.json里配置navigationBarBackgroundColor属性,但发现没有效果。请问正确的配置方法是什么?是否需要考虑不同平台的兼容性问题?

2 回复

在uniapp的pages.json中,给对应页面添加navigationBarBackgroundColor属性即可。例如:

{
  "path": "pages/index/index",
  "style": {
    "navigationBarBackgroundColor": "#007AFF"
  }
}

在 UniApp 中,可以通过以下方式设置导航栏背景颜色:

1. 全局设置(在 pages.json 中)

pages.jsonglobalStyle 中配置:

{
  "globalStyle": {
    "navigationBarBackgroundColor": "#007AFF",
    "navigationBarTextStyle": "white"
  }
}

2. 单页面设置(在 pages.json 中)

pages.jsonpages 数组中为特定页面配置:

{
  "pages": [
    {
      "path": "pages/index/index",
      "style": {
        "navigationBarBackgroundColor": "#FF0000",
        "navigationBarTextStyle": "white"
      }
    }
  ]
}

3. 动态修改(在页面中通过 API)

在页面逻辑中使用 uni.setNavigationBarColor

uni.setNavigationBarColor({
  frontColor: '#ffffff',        // 前景色(文字颜色)
  backgroundColor: '#007AFF',   // 背景色
  animation: {                  // 动画效果(可选)
    duration: 400,
    timingFunc: 'easeIn'
  }
})

注意事项:

  • 颜色值支持 HEX 格式(如 #007AFF)和颜色名称
  • navigationBarTextStyle 用于设置标题颜色,仅支持 white/black
  • 动态修改方法在部分低版本客户端可能不支持
  • H5 端可能受浏览器限制,建议在不同平台测试效果

选择适合你需求的方式进行配置即可。

回到顶部