#鸿蒙通关秘籍#如何在HarmonyOS Next中封装自定义弹窗组件并与UI解耦

HarmonyOS
2024-12-05 15:03:46
1550浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
星辰绘UI

在HarmonyOS Next应用中,封装一个可重用的自定义弹窗组件,与UI解耦,可以按照以下步骤进行:

  1. 封装弹窗UI组件: 创建一个弹窗选项类来封装所有的弹窗参数及样式:

    export class AppDialogOption {
      view?: WrappedBuilder<Object[]>
      buildParams?: Object
      params?: Object
      autoClose?: number
      onPop?: (data: PopInfo) => void
      onBackPressed?: () => boolean
      styles?: AppDialogStyle = new AppDialogStyle()
      animation?: TransitionEffect
      instance?: AppDialog
    }
    
    export class AppDialogStyle {
      transparent: boolean = false
      background: string = 'rgba(0,0,0,0.5)'
      radius: Length = 5
      align: Alignment = Alignment.Center
    }
    
    • 1.
    • 2.
    • 3.
    • 4.
    • 5.
    • 6.
    • 7.
    • 8.
    • 9.
    • 10.
    • 11.
    • 12.
    • 13.
    • 14.
    • 15.
    • 16.
    • 17.
    • 18.
  2. 封装弹窗控制器: 提供一套链式调用API用于管理弹窗生命周期:

    export class AppDialog {
      static indexArr: number[] = [];
      private stackIndex: number = 0;
      private options?: AppDialogOption;
    
      public static buildWithOptions(options?: AppDialogOption): AppDialog {
        let instance: AppDialog = new AppDialog();
        let index: number = AppRouter.getInstance().getPathStack().size() - 1;
        AppDialog.indexArr.push(index);
        instance.stackIndex = index;
        instance.options = options;
        options!.instance = instance;
        return instance;
      }
    
      // More methods...
    }
    
    • 1.
    • 2.
    • 3.
    • 4.
    • 5.
    • 6.
    • 7.
    • 8.
    • 9.
    • 10.
    • 11.
    • 12.
    • 13.
    • 14.
    • 15.
    • 16.
    • 17.
分享
微博
QQ
微信
回复
2024-12-05 17:05:27


相关问题
HarmonyOS 如何封装自定义弹窗
725浏览 • 1回复 待解决
HarmonyOS 自定义弹窗封装问题
712浏览 • 1回复 待解决
HarmonyOS 自定义弹窗如何更新弹窗UI
727浏览 • 1回复 待解决