鸿蒙中封装dialog,代码复制进去直接使用

我们在做项目的时候dialog,这样的加载效果,肯定是少不了的,小编为大家封装了一个dialog,有需要的大家自取。

话不多说直接上代码。

先封装一个加载效的函数

// 添加加载效果
@CustomDialog
export struct HcLoadingDialog {
  controller: CustomDialogController
  @Prop message: string = '加载中...'

  build() {
    Column() {
      Column({ space: 10 }) {
        LoadingProgress()
          .width(48)
          .height(48)
          .color($r('app.color.white'))
        if (this.message) {
          Text(this.message)
            .fontSize(14)
            .fontColor($r('app.color.white'))
        }
      }
      .justifyContent(FlexAlign.Center)
      .width(120)
      .height(120)
      .backgroundColor('rgba(0,0,0,0.6)')
      .borderRadius(16)
    }
  }

 在需要的地方直接引用就行--引用

 // 加载dialog
  dialog = new CustomDialogController({
    builder: HcLoadingDialog(),
    customStyle: true,
    alignment: DialogAlignment.Center
  })

 这个时候我们只要在发送接口的时候去使用进行

 async aboutToAppear() {
    this.dialog.open()  // 开启dialog
    const res = await http.request<StudyTimeData>({ url: 'studyInfo' })
    this.dialog.close() // 关闭dialog
    this.data = res
  }

我们可以看一下效果图 

各位看官老爷,觉得有用就点点赞把!

以下是一个基础的 Android Dialog 使用封装的示例代码,可以作为参考: ```java public class BaseDialog extends Dialog { public BaseDialog(@NonNull Context context) { super(context); init(); } public BaseDialog(@NonNull Context context, int themeResId) { super(context, themeResId); init(); } private void init() { // 设置 Dialog 样式等 requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); setCancelable(true); setCanceledOnTouchOutside(true); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.dialog_layout); // 初始化 Dialog 布局和控件 initView(); } /** * 初始化 Dialog 布局和控件 */ private void initView() { // TODO: 初始化 Dialog 布局和控件 } /** * 显示 Dialog */ public void showDialog() { if (!isShowing()) { show(); } } /** * 隐藏 Dialog */ public void hideDialog() { if (isShowing()) { dismiss(); } } } ``` 在这个示例,`BaseDialog` 是一个基础的 Dialog 类,它继承自 `Dialog` 类,并且对 Dialog 进行了一些基础的封装。在 `init()` 方法,我们设置了 Dialog 的样式等属性;在 `onCreate()` 方法,我们初始化了 Dialog 的布局和控件;在 `showDialog()` 和 `hideDialog()` 方法,我们分别实现了显示和隐藏 Dialog 的逻辑。 使用这个基础的 Dialog 类,我们只需要继承它,并实现 `initView()` 方法来初始化自定义 Dialog 的布局和控件即可。例如: ```java public class MyDialog extends BaseDialog { public MyDialog(@NonNull Context context) { super(context); } public MyDialog(@NonNull Context context, int themeResId) { super(context, themeResId); } @Override protected void initView() { // 初始化 Dialog 布局和控件 TextView titleView = findViewById(R.id.dialog_title); Button confirmBtn = findViewById(R.id.dialog_confirm_btn); // 设置 Dialog 标题和按钮点击事件等 titleView.setText("这是一个自定义 Dialog"); confirmBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO: 处理确认按钮点击事件 hideDialog(); } }); } } ``` 在这个示例,`MyDialog` 继承自 `BaseDialog` 类,并且实现了 `initView()` 方法来初始化自定义 Dialog 的布局和控件。在 `initView()` 方法,我们可以通过 `findViewById()` 方法获取 Dialog 的控件,并设置它们的属性和事件等。这样,我们就可以通过 `MyDialog` 类来创建和显示自定义的 Dialog 了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值