1.颜色适配(字体颜色和弹窗背景色),自定义两套颜色资源(resources/dark/element/color.json和resources/base/element/color.json),通过$r的方式加载颜色资源的key值。 通过系统资源实现,开发者可直接使用的系统预置资源,即分层参数,同一资源ID在设备类型、深浅色等不同配置下有不同的取值。通过使用系统资源,不同的开发者可以开发出具有相同视觉风格的应用,不需要自定义2份颜色资源,在深浅色模式下也会自动切换成不同的颜色值。2.状态栏字体颜色可通过设置statusBarContentColor修改, 参考文档如下:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-window-V5\#systembarproperties实现状态栏图标颜色动态修改,每个页面还是需要在每个页面设置颜色,如果动态的存取可以用堆栈集合等方式对颜色的值进行取值。 在需要改变的页面直接调用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) } }
1.颜色适配(字体颜色和弹窗背景色),自定义两套颜色资源(resources/dark/element/color.json和resources/base/element/color.json),通过$r的方式加载颜色资源的key值。 通过系统资源实现,开发者可直接使用的系统预置资源,即分层参数,同一资源ID在设备类型、深浅色等不同配置下有不同的取值。通过使用系统资源,不同的开发者可以开发出具有相同视觉风格的应用,不需要自定义2份颜色资源,在深浅色模式下也会自动切换成不同的颜色值。
2.状态栏字体颜色可通过设置statusBarContentColor修改, 参考文档如下:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-window-V5\#systembarproperties
实现状态栏图标颜色动态修改,每个页面还是需要在每个页面设置颜色,如果动态的存取可以用堆栈集合等方式对颜色的值进行取值。 在需要改变的页面直接调用setWindowSystemBarProperties方法,参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-window-V5\#setwindowsystembarproperties9
可参考如下demo: