HarmonyOS 鸿蒙Next如何配置应用全局的默认背景色和页面转场动效?还有状态栏字体颜色怎么改?

发布于 1周前 作者 caililin 来自 鸿蒙OS

HarmonyOS 鸿蒙Next如何配置应用全局的默认背景色和页面转场动效?还有状态栏字体颜色怎么改? 如何配置应用全局的默认背景色和页面转场动效?还有状态栏字体颜色怎么改?

2 回复

全局背景色可以通过 .backgroundColor(Color.White) 进行设置, 但不支持统一设置,要在对应页面的的 .ets 文件设置。

页面的创建和销毁动画效果可以通过在 pageTransition 函数中自定义页面入场和页面退场的转场动效,参考文档如下: https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-page-transition-animation-V5

状态栏字体颜色可以通过 statusBarContentColor 进行更改,参考文档链接: https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-window-V5#systembarproperties

参考代码

import window1 from '@ohos.window';
import { BusinessError } from '@ohos.base';
import Stack from '@ohos.util.Stack';

class StatusBarColor {
  statusBarColor: string;
  statusBarContentColor: string

  constructor(statusBarColor: string, statusBarContentColor: string) {
    // 状态栏背景
    this.statusBarColor = statusBarColor;
    // 状态栏内容
    this.statusBarContentColor = statusBarContentColor;
  }
}

export class StatusBarUtils {
  static testNumber: number = 0;
  private static barColor: Stack<StatusBarColor> = new Stack();

  private static setBarColor(statusBarColor: StatusBarColor) {
    let mainWindow: window1.Window | undefined = AppStorage.get("mainWindow")
    let sysBarProps: window1.SystemBarProperties = {
      statusBarColor: statusBarColor.statusBarColor,
      statusBarContentColor: statusBarColor.statusBarContentColor,
    };
    mainWindow?.setWindowSystemBarProperties(sysBarProps, (err: BusinessError) => {
      let errCode: number = err.code;
      if (errCode) {
        console.error('[StaticUtils] Failed to set the system bar properties. Cause: ' + JSON.stringify(err));
        return;
      }
      console.info('[StaticUtils] Succeeded in setting the system bar properties.');
    });
  }

  static pushStatusColor(statusBarColor: string, statusBarContentColor: string) {
    StatusBarUtils.barColor.push(new StatusBarColor(statusBarColor, statusBarContentColor))
    StatusBarUtils.setBarColor(StatusBarUtils.barColor.peek());
  }

  static popStatusColor() {
    if (!StatusBarUtils.barColor.isEmpty()) {
      StatusBarUtils.barColor.pop();
      if (!StatusBarUtils.barColor.isEmpty()) {
        StatusBarUtils.setBarColor(StatusBarUtils.barColor.peek());
      }
    }
  }
}

更多关于HarmonyOS 鸿蒙Next如何配置应用全局的默认背景色和页面转场动效?还有状态栏字体颜色怎么改?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next系统中,配置应用全局的默认背景色、页面转场动效以及状态栏字体颜色,可以通过以下方式进行:

  1. 配置应用全局默认背景色:

    • 在应用的资源文件中(如colors.xml),定义所需的背景色。
    • 在页面的布局文件中(如*.xml),为根布局设置该背景色,或使用主题(Theme)统一设置。
  2. 配置页面转场动效:

    • 在页面的跳转代码中,使用系统提供的页面跳转接口,并通过参数设置转场动效。
    • HarmonyOS提供了多种转场动效,如淡入淡出、滑动等,根据需求选择合适的动效。
  3. 修改状态栏字体颜色:

    • 通过修改应用的主题(Theme),设置状态栏的样式属性,如statusBarDarkMode,来控制字体颜色为深色或浅色。
    • 通常,当状态栏背景为深色时,字体颜色应设为浅色;反之亦然。

请注意,以上操作可能涉及对系统API和资源配置文件的修改,具体实现需参考HarmonyOS的官方开发文档。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部