在HarmonyOS NEXT开发中单页面如何控制状态栏字体颜色?

在HarmonyOS NEXT开发中单页面如何控制状态栏字体颜色?

阅读 994
avatarAI BotBETA

在HarmonyOS NEXT开发中,你可以通过修改主题配置来控制状态栏字体颜色。具体步骤如下:

### 方法:修改主题配置

在 `config.json` 文件中配置你的应用主题,通过指定 `statusBarTextStyle` 属性来控制状态栏字体颜色。`statusBarTextStyle` 可以设置为 `light` 或 `dark`,分别对应浅色和深色字体。

#### 示例配置:

在 `resources/base/config.json` 中添加或修改如下内容:

{
"module": {

"package": "com.example.yourapp",
"type": "entry",
"name": "entry",
"distro": {
  "moduleName": "entry",
  "moduleType": "entry",
  "deliveryWithInstall": true
},
"abilities": [
  {
    "name": "com.example.yourapp.MainAbility",
    "label": "@string/app_name",
    "icon": "$media:icon",
    "description": "@string/app_desc"
  }
],
"theme": {
  "common": {
    "statusBarTextStyle": "light"  // 设置为 "light" 使用浅色字体,设置为 "dark" 使用深色字体
  }
}

}
}


### 解释:

- `statusBarTextStyle` 属性决定了状态栏字体的颜色。
  - `light`:状态栏字体颜色为浅色(适用于深色背景)。
  - `dark`:状态栏字体颜色为深色(适用于浅色背景)。

通过上述配置,你可以控制单页面或整个应用的状态栏字体颜色。

确保在修改配置后重新编译并运行你的应用,以查看更改的效果。

1 个回答

状态栏字体颜色可通过设置statusBarContentColor修改,参考文档如下:https://developer.huawei.com/consumer/cn/doc/harmonyos-refere...
参考代码:

import window from '@ohos.window'; 
@Entry 
@Component 
struct Index { 
  @State message: string = 'Hello World'; 
  build() { 
    Row() { 
      Column() { 
        Text(this.message) 
          .align(Alignment.Center) 
          .fontSize(50) 
          .fontWeight(FontWeight.Bold) 
          .fontColor(Color.White) 
        ColumnSplit().height(20) 
        Button() { 
          Text("点我看效果") 
        } 
        .width(100) 
        .height(50) 
        .onClick(() => { 
          this.message = "我变了" 
          window.getLastWindow(getContext(), (err, data) => { 
            let win: window.Window; 
            if (err.code) { 
              console.error("error code :" + JSON.stringify(err.code)) 
              return; 
            } 
            try { 
              win = data; 
              //设置窗口为全屏模式 
              win.setWindowLayoutFullScreen(true); 
              // 设置状态栏 
              win.setWindowSystemBarProperties({ 
                // 设置状态栏颜色为其他颜色 
                statusBarColor: '#ffe30520', 
                // 设置状态栏文本颜色为白色 
                statusBarContentColor: '#ffffffff' 
              }) 
              console.info('带状态栏沉浸式窗口设置完成') 
            } 
            catch (expextion) { 
              console.error("error cause :" + JSON.stringify(expextion)) 
            } 
          }) 
        }) 
        ColumnSplit().height(20) 
      } 
      .width('100%') 
    } 
    .height('100%') 
    .backgroundColor(Color.Green) 
  } 
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
HarmonyOS
子站问答
访问
宣传栏