HarmonyOS 鸿蒙Next CustomDialog 设置背景颜色为透明 不生效

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

HarmonyOS 鸿蒙Next CustomDialog 设置背景颜色为透明 不生效
CustomDialog 设置背景颜色为透明 不生效,背景没有透明,还是能看到白色,
部分示例代码如下:

dialogController: CustomDialogController = new CustomDialogController({
builder: DiscoverTagDialogView({}),
    backgroundColor: Color.Transparent
})
2 回复
import { ComponentContent } from '@kit.ArkUI';

import { BusinessError } from '@kit.BasicServicesKit';

@Entry
@Component
struct Index {
  @State message: string = 'Hello World'

  aboutToAppear(): void {

    let uiContext = this.getUIContext();

    let promptAction = uiContext.getPromptAction();

    let contentNode = new ComponentContent((uiContext as UIContext), wrapBuilder(DiscoverTagDialogView));

    try {

      promptAction.openCustomDialog(contentNode, {

        maskColor: Color.Transparent, // 设置蒙层颜色为透明

        //isModal:false   //或者直接设置没有蒙层

      });

    } catch (error) {

      let message = (error as BusinessError).message;

      let code = (error as BusinessError).code;

      console.error(`OpenCustomDialog args error code is ${code}, message is ${message}`);

    }
    ;

  }

  build() {

    RelativeContainer() {

      Text(this.message)

        .id('HelloWorld')

        .fontSize(50)

        .fontWeight(FontWeight.Bold)

        .alignRules({

          center: { anchor: '__container__', align: VerticalAlign.Center },

          middle: { anchor: '__container__', align: HorizontalAlign.Center }

        })

    }

    .height('100%')

    .width('100%')

    // .backgroundColor(Color.Green)

  }
}

@Builder
function DiscoverTagDialogView() {

  Stack() {

    Image($r('app.media.home_discover_tag_bg'))

      .width(330)

      .height(651)

    Column() {

      Text('选择感兴趣的标签')

        .fontSize(18)

        .fontWeight(FontWeight.Medium)

        .fontColor('rgba(0,0,0,0.8)')

        .margin({ top: 160 })

        .height(25)

      Text('为您智能推荐相关服务')

        .fontSize(14)

        .fontWeight(FontWeight.Regular)

        .fontColor('#999999')

        .margin({ top: 8 })

        .height(20)

    }

    .width(330)

    .height(651)

  }

}

在HarmonyOS鸿蒙系统中,若你遇到在Next CustomDialog中设置背景颜色为透明但不生效的问题,这可能是由于Dialog的默认属性或层级管理导致的。以下是一些可能的原因及解决方法,但鉴于直接建议受限,我将概述一些常见调整思路:

  1. 确认透明设置方式:确保你是通过Dialog的布局文件或直接在其属性中设置了透明度(如android:background="@android:color/transparent"或使用代码设置透明度)。

  2. 检查Dialog的Window属性:有时需要调整Dialog的Window属性,如dimAmountwindowIsTranslucent,来确保背景透明度的正确应用。

  3. 层级与布局问题:确认Dialog内部的布局没有覆盖或阻碍背景透明度的显示。可能需要检查布局文件中的其他视图是否设置了非透明背景。

  4. 系统主题与样式:确认当前应用的主题或样式没有覆盖Dialog的背景设置。有时,系统主题中的默认设置会覆盖局部设置。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html 。在那里,你可以获得更专业的技术支持和解决方案。

回到顶部