多个Ability并适配深浅色模式/系统语言切换

多个Ability并适配深浅色模式/系统语言切换

HarmonyOS
2024-05-26 15:11:05
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
makeer

使用的核心API

核心代码解释

从Ability中获取上下文,及配置信息存入工具类ContextUtil中

export default class EntryAbility extends UIAbility { 
  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { 
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate'); 
    ContextUtil.mContext = this.context; 
    ContextUtil.mConfiguration = this.context.config; 
  } 
 
  onConfigurationUpdate(newConfig: Configuration): void { 
    ContextUtil.mConfiguration = newConfig; 
  } 
}

根据当前模式来切换深浅模式

@Entry 
@Component 
struct Index { 
  @State darkMode: boolean = ContextUtil.mConfiguration.colorMode == ConfigurationConstant.ColorMode.COLOR_MODE_DARK; 
  build() { 
    Row() { 
      Column() { 
        Row(){ 
          Text($r('app.string.dark_mode')) 
          Toggle({ type: ToggleType.Switch, isOn: this.darkMode }).onChange((isOn:Boolean)=>{ 
            let applicationContext = ContextUtil.mContext.getApplicationContext(); 
            if (this.darkMode) { 
              //设置系统浅色模式。 
              this.darkMode = false; 
              applicationContext.setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_LIGHT) 
            }else { 
              //设置系统深色模式。 
              this.darkMode = true; 
              applicationContext.setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_DARK) 
            } 
          }) 
        }.height(200) 
        Text($r('app.string.default_app')) 
          .fontSize(50) 
          .fontWeight(FontWeight.Bold) 
      } 
      .width('100%') 
    } 
    .height('100%') 
  } 
}

适配的版本信息

IDE版本:DevEco Studio 4.1.1.300

SDK版本:4.1.3.5

分享
微博
QQ
微信
回复
2024-05-27 20:12:17
相关问题
app适配深色浅色切换模式
1877浏览 • 1回复 待解决
Canvas中深色/浅色主题切换
415浏览 • 1回复 待解决
Ability 全屏模式无法实现
309浏览 • 2回复 待解决
应用如何适配深色模式
1011浏览 • 1回复 待解决
应用如何适配深色模式
2289浏览 • 1回复 待解决
HarmonyOS分屏幕模式和小窗口模式适配
637浏览 • 1回复 待解决
求助ETS如何多语言切换
3333浏览 • 1回复 待解决
应用如何适配大显示模式
1957浏览 • 1回复 待解决