HarmonyOS 如何动态设置状态栏的字体、图标颜色,以及背景颜色?

如何动态设置页面状态栏的字体、图标颜色?并且离开该页面后取消设置的样式。

阅读 467
1 个回答

可以接调用setWindowSystemBarProperties方法,参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-window-V5\#setwindowsystembarproperties9

demo

import { window } from '@kit.ArkUI';

@Entry
@Component
struct Index {
  @State imgFit: ImageFit = ImageFit.Auto;

  change(): void {
    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: '#ffc41212',
          // 设置状态栏文本颜色为白色
          statusBarContentColor: '#ff81f362'
        })
        console.info('带状态栏沉浸式窗口设置完成')
      } catch (expextion) {
        console.error("error cause :" + JSON.stringify(expextion))
      }
    })
  }

  build() {
    Row() {
      Column({ space: 10 }) {
        Button("change").onClick(() => {
          this.change()
        })
      }
      .height('100%')
    }
    .width('100%')
    .backgroundColor(Color.Black)
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进