HarmonyOS 鸿蒙Next promptAction.openCustomDialog弹窗显示后弹窗底部的空白怎么来的怎么去掉

HarmonyOS 鸿蒙Next promptAction.openCustomDialog弹窗显示后弹窗底部的空白怎么来的怎么去掉

cke_132.png

我不明白我这个自定义弹窗底部白色的空白是怎么来的,怎么去掉,代码如下:

@Builder
private confirmDelDialog() {
  Column() {
    Text($r('app.string.batch_delete'))
      .fontSize($r('app.float.fp_16'))
      .fontColor($r('app.color.col_111212'))
      .padding($r('app.float.vp_14'))
      .fontWeight(FontWeight.Bold)
      .width('100%')
      .textAlign(TextAlign.Center)
  }
  .alignItems(HorizontalAlign.Center)
  .backgroundColor(Color.Blue)
  .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.BOTTOM, SafeAreaEdge.TOP])
}

/**
 * 删除通话记录二次确认弹窗
 */
private showConfirmDel() {
  promptAction.openCustomDialog({
    builder: () => {
      this.confirmDelDialog()
    },
    cornerRadius: $r('app.float.vp_8'),
  }).then((id) => {
    this.delConfirmDialogId = id
  })
}

当我尝试把confirmDelDialog的高度设置100%时候,底部白色就消失掉了,但是Dialog却是全屏了,这和需求不符合;另外我把expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.BOTTOM,SafeAreaEdge.TOP])这行去掉,也依然留有空白;希望有大佬解答


更多关于HarmonyOS 鸿蒙Next promptAction.openCustomDialog弹窗显示后弹窗底部的空白怎么来的怎么去掉的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

了解了,这个promptAction.openCustomDialog应该有默认的最小高度,所以才有这个空白,但弹窗内容大于等于最小高度后,空白自然消失;@CustomDialog的使用也是一样的。

更多关于HarmonyOS 鸿蒙Next promptAction.openCustomDialog弹窗显示后弹窗底部的空白怎么来的怎么去掉的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS中,promptAction.openCustomDialog弹窗显示后底部的空白可能是由于布局设置或样式问题导致的。以下是一些可能的原因及解决方法:

  1. 布局高度问题:弹窗的布局文件可能设置了固定的高度或使用了wrap_content,导致底部出现空白。可以检查布局文件,确保高度设置合理。

  2. 样式问题:弹窗的样式可能包含了默认的padding或margin,导致底部出现空白。可以通过修改样式文件,去除不必要的padding或margin。

  3. 内容布局问题:弹窗内的内容布局可能未填充整个弹窗,导致底部出现空白。可以检查内容布局,确保其填充整个弹窗。

  4. Dialog样式:在使用openCustomDialog时,可能使用了默认的Dialog样式,这些样式可能包含底部空白。可以通过自定义Dialog样式,去除底部空白。

  5. 系统默认行为:某些系统默认行为可能导致底部空白,可以通过设置setCanceledOnTouchOutside(false)或修改相关属性来解决。

具体解决方法需根据实际代码和布局进行调整,确保弹窗布局和样式设置合理,避免底部空白。

回到顶部