HarmonyOS鸿蒙Next中CustomDialogController如何自定义窗口大小

HarmonyOS鸿蒙Next中CustomDialogController如何自定义窗口大小 CustomDialogController如何自定义窗口大小

3 回复

CustomDialogController 自定义窗口大小弹窗容器有三种方式

方式一:采用弹窗容器默认样式。在默认样式中,弹窗容器高度自适应子节点,最大可为窗口高度的90%,弹窗容器的宽度根据栅格系统自适应,不跟随子节点变化。

方式二:当显示设置customStyle为true时,弹窗宽高跟随子节点内容适应。参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-methods-custom-dialog-box-V5#customdialogcontrolleroptions对象说明

方式三:通过组件控制 以column为例如下

[@CustomDialog](/user/CustomDialog)
struct CustomDialogExampleTwo {
  controllerTwo?: CustomDialogController

  build() {
    Column() {
    //代码实现
    }
     .width(xx)
     .height(xx)
  }
}

通过 Column 只能控制height,width不生效。

并且CustomDialogController不支持声明全局使用,CustomDialogController仅在作为@CustomDialog@Component struct的成员变量,且在@Component struct内部定义时赋值才有效。

更多关于HarmonyOS鸿蒙Next中CustomDialogController如何自定义窗口大小的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,CustomDialogController用于创建和管理自定义对话框。要自定义窗口大小,可以通过设置对话框的布局参数来实现。具体步骤如下:

  1. 创建自定义对话框布局:首先,在resources/base/layout目录下创建一个XML布局文件,定义你想要的对话框界面。

  2. 初始化CustomDialogController:在代码中初始化CustomDialogController,并加载自定义布局。

  3. 设置窗口大小:通过WindowManagerWindow对象设置对话框的窗口大小。可以使用WindowManager.LayoutParams来指定宽度和高度。

import { CustomDialogController } from '@ohos.arkui.UIContext';

// 初始化CustomDialogController
let customDialogController = new CustomDialogController({
    builder: () => {
        // 加载自定义布局
        let customDialog = new CustomDialog();
        return customDialog;
    },
    customStyle: true
});

// 设置窗口大小
customDialogController.setWindowSize(400, 300); // 宽度400px,高度300px
  1. 显示对话框:调用customDialogController.show()方法显示对话框。

通过上述步骤,你可以自定义CustomDialogController的窗口大小。注意,setWindowSize方法中的参数单位为像素。

在HarmonyOS鸿蒙Next中,自定义CustomDialogController窗口大小可以通过以下步骤实现:

  1. 创建自定义布局:首先,在xml文件中定义自定义对话框的布局,设置widthheight属性。

  2. 设置对话框属性:在代码中,通过CustomDialogControllersetWidthsetHeight方法设置对话框的宽度和高度。例如:

    CustomDialogController controller = new CustomDialogController(context);
    controller.setWidth(300); // 设置宽度为300px
    controller.setHeight(200); // 设置高度为200px
    
  3. 加载并显示对话框:将自定义布局加载到对话框中,并显示。

通过以上步骤,即可实现CustomDialogController窗口大小的自定义。

回到顶部