鸿蒙:自定义弹窗

//页面
import { router } from '@kit.ArkUI'
@Entry
@Component
struct Index{
  controller:CustomDialogController=new CustomDialogController({
    builder:HButton({
      buttonList:[
        {text:"取消",fontSize:20,fontColor: "#ff5f5d5d" },
        {text:"确定",fontSize:20,fontColor: "#ffe76e6e" ,action:()=>{
          this.login()
        }}
      ],
      message:"确定要退出吗?"
    }),
    autoCancel:true,
    alignment:DialogAlignment.Center

  })

  login(){
    router.replaceUrl({
      url:"pages/Index"
    })
  }
  build() {
    Column() {
      Button('退出')
        .onClick(()=>{
         this.controller.open()
      })
    }
    .height('100%')
    .width('100%')
  }
}

//自定义弹窗设置

@CustomDialog
@Component
  struct HButton{
  controller:CustomDialogController
  buttonList:buttonStyle[]=[]
  message:string=''
  build() {
    Column(){
      Row(){
        Text(this.message).fontSize(20)
      }.height(50).width(160)

      Row(){
        ForEach(this.buttonList,(item:buttonStyle,index:number)=>{
          Text(item.text)
            .margin(10)
            .padding({top:20})
            .fontSize(item.fontSize)
            .fontColor(item.fontColor)
            .border({color:"#ffbab8b8",width:{top:0.5}})
            .layoutWeight(1)
            .textAlign(TextAlign.Center)
            .onClick(()=>{
              if (item.action) {
                //必须加括号
                item.action()
              }
              this.controller.close()
            })
        })
      }
      .width(160).height(50)
    }
    .height(150)
  }
}

//类buttonStyle

export class buttonStyle{
  text?:string
  fontSize?:number
  fontColor?:string
  action?:()=>void=()=>{}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值