在HarmonyOS NEXT开发中如何动态修改状态栏颜色和字体颜色?

阅读 532
1 个回答

实现状态栏图标颜色动态修改,每个页面还是需要在每个页面设置颜色,如果动态的存取可以用堆栈集合等方式对颜色的值进行取值。 在需要改变的页面直接调用setWindowSystemBarProperties方法,参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-refere...

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) 
  } 
}

本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进