//页面 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=()=>{} }