HarmonyOS 全局loading有什么方案吗

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
aquaa

可以通过封装customDialog实现全局loading效果。

1、封装一个弹框实例:

// CustomLoading.ets
@CustomDialog
export struct CustomLoading {
  controller?: CustomDialogController

  build() {
    Stack({ alignContent: Alignment.Center }) {
      Column() {
        LoadingProgress().width(30).height(30).color(Color.White)
        Text('请稍候')
          .fontColor(Color.White)
          .fontSize(16)
          .margin({ top: 15 })
          .width('100%')
          .textAlign(TextAlign.Center)
      }
      .justifyContent(FlexAlign.Center)
      .width(100)
      .height(100)
      .backgroundColor('#88000000')
      .borderRadius(8)
    }
    .width('100%')
    .height('100%')
    .backgroundColor(Color.Transparent)
  }
}

2、在EntryAbility.ts的onCreate方法里通过AppStorage定义关于弹框显示的全局属性,默认false不显示。

AppStorage.setOrCreate('showGlobalCustomDialog', false)

3、在window的入口page(比如Index.ets)里import并创建实例和监听方法,各页面使用时通过AppStorage.setOrCreate(‘showGlobalCustomDialog’, true)即可拉起弹窗。

// index.ets
import { CustomLoading } from '../common/CustomLoading'

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';
  @StorageLink('showGlobalCustomDialog') @Watch('globalCustomDialogStateChange') showGlobalCustomDialog: boolean = false
  dialogController: CustomDialogController | null = new CustomDialogController({
    builder: CustomLoading({}),
    alignment: DialogAlignment.Center,
    autoCancel: false,
    customStyle: true,
  })

  globalCustomDialogStateChange() {
    if (this.showGlobalCustomDialog) {
      if (this.dialogController != null) {
        this.dialogController.open()
      }
    } else {
      this.dialogController?.close()
    }
  }

  build() {
    Row() {
      Column() {
        Button('showLoading').onClick(() => {
          AppStorage.setOrCreate('showGlobalCustomDialog', true)
        })
      }
      .width('100%')
    }
    .height('100%')
  }
}
分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS 是否全局loading这种控件?
422浏览 • 1回复 待解决
HarmonyOS 全局loading
44浏览 • 1回复 待解决
HarmonyOS 全局loading组件
345浏览 • 1回复 待解决
HarmonyOS通过方法调用的loading
438浏览 • 0回复 待解决
HarmonyOS 全局loading的菊花如何实现?
418浏览 • 1回复 待解决
HarmonyOS 没有全局的api loading动画
429浏览 • 1回复 待解决
HarmonyOS 如何在全局使用loading组件?
753浏览 • 1回复 待解决
HarmonyOS 设置字体全局方法
293浏览 • 1回复 待解决
屏幕旋转计算,什么好的方案
951浏览 • 1回复 待解决
HarmonyOS 创建全局弹窗的推荐方案
31浏览 • 1回复 待解决
HarmonyOS的折叠屏适配有什么方案
498浏览 • 1回复 待解决
HarmonyOS防CPP crash的具体方案
387浏览 • 1回复 待解决
请问现在harmonyOS屏幕适配方案
3828浏览 • 1回复 待解决
Image图片加载缓慢,什么方案么?
1202浏览 • 1回复 待解决
鸿蒙java开发 实人认证方案
3998浏览 • 1回复 待解决
Text模拟隐私协议,好的方案
782浏览 • 1回复 待解决