HarmonyOS 主动设置深浅色模式

需求:可主动设置深浅色模式,可切换跟随系统。

1、setColorMode 后 可正常切换深色或浅色,OK,

2、当切换为跟随系统,想拿系统的,再次通过 config.colorMode 获取模式,拿到的是1设置的,理论上也是对的,因为刚才修改了,但是需求是拿到系统真实的。

3、在不调用setColorMode之前,通过修改系统设置中的深浅色,会回调onConfigurationUpdate(newConfig: Configuration)。发现,当调用过一次setColorMode之后,再通过系统修改设置中的深浅色,不会回调onConfigurationUpdate了

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

示例参考,切换跟随系统的时候,只需要setColorMode的时候传值传入-1就可以了,设置为-1之后,再通过系统修改设置中的深浅色,也会回调onConfigurationUpdate了:

@Entry
@Component
struct ColorModeDemo {
  @State message: string = 'Hello World';
  setMode(colorMode:number){
    getContext().getApplicationContext().setColorMode(colorMode)
  }
  build() {
    Column() {
      Text(this.message)
        .id('ColorModeDemoHelloWorld')
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
        .alignRules({
          center: { anchor: '__container__', align: VerticalAlign.Center },
          middle: { anchor: '__container__', align: HorizontalAlign.Center }
        })
      Button('切换深色模式')
        .onClick(() => {
          this.setMode(0)
        })
      Button('切换浅色模式')
        .onClick(() => {
          this.setMode(1)
        })
      Button('跟随系统')
        .onClick(() => {
          this.setMode(-1)
        })
    }
    .height('100%')
    .width('100%')
  }
}

setColorMode的参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-inner-application-applicationcontext-V5#applicationcontextsetcolormode11

分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS 如何监听深浅色模式
16浏览 • 1回复 待解决
HarmonyOS 如何设置固定浅色模式
95浏览 • 1回复 待解决
HarmonyOS 浅色模式与深色模式
22浏览 • 1回复 待解决
app适配深色浅色切换模式
1900浏览 • 1回复 待解决
HarmonyOS 浅色深色主题如何设置
457浏览 • 1回复 待解决