参考示例:@CustomDialog struct CustomDialogExampleTwo { private arr: string[] = ['apples','bananas','pears'] controllerTwo?: CustomDialogController build() { Column() { Text('ActionSheet title').fontSize(20).margin({ top: 10, bottom: 10 }) Text('message').fontSize(16).margin({ bottom: 10 }) List({ space:10,initialIndex:0 }) { ForEach(this.arr, (item: number) => { ListItem() { Text('' + item) .width('100%').fontSize(16) .textAlign(TextAlign.Center).borderRadius(10).backgroundColor(0xFFFFFF) } }, (item: string) => item) } .listDirection(Axis.Vertical) .divider({ strokeWidth: 1, color: Color.Gray, startMargin: 100, endMargin: 100 }) Button('Confirm button') .onClick(() => { if (this.controllerTwo != undefined) { this.controllerTwo.close() } }) .width('80%') .margin(20) } } } @Entry @CustomDialog struct Index2 { dialogControllerTwo: CustomDialogController | null = new CustomDialogController({ builder: CustomDialogExampleTwo(), alignment: DialogAlignment.Bottom, offset: { dx: 0, dy: -25 } }) controller?: CustomDialogController build() { Column() { Flex({ justifyContent: FlexAlign.Center,alignItems:ItemAlign.Center }) { Button('click') .onClick(() => { if (this.dialogControllerTwo != null) { this.dialogControllerTwo.open() } }) .margin(20) }.borderRadius(10) } } }
参考示例: