HarmonyOS 鸿蒙Next 如何让 page 背景像 dialog 那样显示透明效果?

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

HarmonyOS 鸿蒙Next 如何让 page 背景像 dialog 那样显示透明效果?

不使用Navigation,只有 router 管理,如何让 page页面背景像 dialog 那样显示透明效果?   

2 回复

更多关于HarmonyOS 鸿蒙Next 如何让 page 背景像 dialog 那样显示透明效果?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,要让Page背景像Dialog那样显示透明效果,可以通过设置Page的窗口属性来实现。具体步骤如下:

  1. 获取Window对象: 在Page的onStartonActive等生命周期方法中,通过this.getWindow()获取当前Page的Window对象。

  2. 设置Window属性: 使用Window对象的setWindowAttributes方法,设置背景透明度。例如,可以设置FLAG_TRANSLUCENT_STATUSFLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS标志,并调整背景颜色为带有透明度的颜色值。

  3. 应用透明背景: 在Page的布局文件中,确保根布局(如DirectionalLayoutStackLayout)的背景设置为透明或指定透明度的颜色。

示例代码(伪代码,具体实现需根据HarmonyOS API调整):

@Override
protected void onStart(Intent intent) {
    super.onStart(intent);
    Window window = this.getWindow();
    window.setWindowAttributes(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS |
                               WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS,
                               WindowManager.LayoutParams.FORMAT_CHANGED);
    window.setBackgroundDrawableResource(Color.argb(128, 255, 255, 255)); // 50%透明度的白色
}

注意:上述代码为示意性伪代码,HarmonyOS实际开发中需使用对应的API和类名。

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

回到顶部