popup目前行为确实如此应用可以使用CustomDialog来实现需求,参考地址:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-common-components-custom-dialog-V5import router from '@ohos.router'; @CustomDialog export default struct UserPrivacyDialog { controller: CustomDialogController = new CustomDialogController({ builder: '' }); cancel: Function = () => { }; confirm: Function = () => { }; visible: Visibility = Visibility.None build() { Column() { Text('我是弹窗') Button('jump') .onClick(() => { router.pushUrl({ url: 'pages/Second' }) }).backgroundColor(0xffffff).fontColor(Color.Red) } .margin({ top: 22 }) .justifyContent(FlexAlign.SpaceEvenly) } } @Entry @Component struct Index { @State textValue: string = 'Hello World' @State visible: Visibility = Visibility.None build() { Stack() { Row() { Column() { Button('click') .onClick(() => { if (this.visible == Visibility.Visible) { this.visible = Visibility.None } else { this.visible = Visibility.Visible } }) .backgroundColor(0x777474) .fontColor(0x000000) } .width('100%') } .height('100%') .backgroundColor(0x885555) Text('') .onClick(() => { if (this.visible == Visibility.Visible) { this.visible = Visibility.None } else { this.visible = Visibility.Visible } }) .width('100%') .height('100%')// 透明度可以自己调节一下 .opacity(0.16) .backgroundColor(0x000000) .visibility(this.visible) Column() { GridRow({ columns: { xs: 1, sm: 4, md: 8, lg: 12 }, breakpoints: { value: ["400vp", "600vp", "800vp"], reference: BreakpointsReference.WindowSize }, }) { GridCol({ span: { xs: 1, sm: 2, md: 4, lg: 8 }, offset: { xs: 0, sm: 1, md: 2, lg: 2 } }) { Column() { Flex({ justifyContent: FlexAlign.SpaceAround }) { UserPrivacyDialog(); }.margin({ bottom: 10 }) } .backgroundColor(0xffffff) .visibility(this.visible) .clip(true) .borderRadius(20) } } }.width('95%') //设置弹窗宽度 } } }
popup目前行为确实如此
应用可以使用CustomDialog来实现需求,参考地址:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-common-components-custom-dialog-V5