HarmonyOS 主动设置深浅色模式

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

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

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

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

HarmonyOS
2024-12-25 08:19:21
1205浏览
收藏 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%')
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.

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

分享
微博
QQ
微信
回复
2024-12-25 11:10:38


相关问题
HarmonyOS 如何监听深浅色模式
658浏览 • 1回复 待解决
HarmonyOS 如何设置固定浅色模式
570浏览 • 1回复 待解决
HarmonyOS 浅色模式与深色模式
845浏览 • 1回复 待解决
app适配深色浅色切换模式
2611浏览 • 1回复 待解决