#鸿蒙通关秘籍#如何在鸿蒙应用中监听深浅色模式的切换事件?

HarmonyOS
5h前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
EDIF流云飞絮

在AbilityStage的onCreate生命周期中获取当前颜色模式,并储存在AppStorage中:

onCreate(): void {
  AppStorage.setOrCreate('currentColorMode', this.context.config.colorMode);
}

然后,在onConfigurationUpdate生命周期中获取新的颜色模式并更新AppStorage

onConfigurationUpdate(newConfig: Configuration): void {
  AppStorage.setOrCreate('currentColorMode', newConfig.colorMode);
}

在页面中,可以通过@StorageProp@Watch监听深浅色模式变化:

@StorageProp('currentColorMode') 
@Watch('onColorModeChange') 
currentMode: number = ConfigurationConstant.ColorMode.COLOR_MODE_LIGHT;

onColorModeChange(): void {
  if (this.currentMode == ConfigurationConstant.ColorMode.COLOR_MODE_LIGHT) {
    // 当前为浅色模式,资源初始化逻辑
  } else {
    // 当前为深色模式,资源初始化逻辑
  }
}

分享
微博
QQ
微信
回复
3h前
相关问题