HarmonyOS 鸿蒙Next 基于原生能力的深色模式适配

发布于 1周前 作者 phonegap100 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 基于原生能力的深色模式适配

介绍

对于原生开发的应用,深色模式适配是开发过程中常见的业务场景,系统可以通过状态栏中的深色模式开关配置系统的颜色模式,当系统颜色模式方式变化时,应用经常会遇到如下的业务诉求:

场景一:跟随系统变化,感知系统颜色模式发生变化,无需重启应用,完成资源切换。

场景二:不跟随系统变化,应用固定使用某种颜色模式,不跟随系统颜色模式变化。

demo详情链接

https://gitee.com/scenario-samples/ranking-demo

image.png


更多关于HarmonyOS 鸿蒙Next 基于原生能力的深色模式适配的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于HarmonyOS 鸿蒙Next 基于原生能力的深色模式适配的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next系统中,基于原生能力的深色模式适配主要通过系统主题和UI组件的自动调整来实现。以下是实现深色模式适配的鸿蒙场景化代码示例:

  1. 配置文件修改: 在config.json中,添加对深色模式的支持声明:

    "module": {
        "abilities": [{
            "uiMode": ["light", "dark"]
        }]
    }
    
  2. 代码实现: 在JavaScript代码中,通过监听系统主题变化事件来动态调整UI。

    import system from '[@ohos](/user/ohos).system';
    
    system.theme.on('change', (event) => {
        const theme = event.newValue;
        if (theme === 'dark') {
            // 适配深色模式UI
            this.$element('yourElementId').style.backgroundColor = '#000000';
            // 更多深色模式适配代码...
        } else {
            // 适配浅色模式UI
            this.$element('yourElementId').style.backgroundColor = '#FFFFFF';
            // 更多浅色模式适配代码...
        }
    });
    
  3. 样式文件调整: 在CSS文件中,可以为深色模式和浅色模式定义不同的样式类,通过JavaScript动态切换类名。

注意,上述代码仅为示例,具体实现需根据应用实际情况调整。深色模式适配需考虑所有UI元素的颜色、图标等,确保在不同主题下都能保持良好的用户体验。

回到顶部