代码拉取完成,页面将自动刷新
基于Navigation.Dialog的透明页面特性,可以用于实现弹窗效果, 而且Navigation.Dialog存在于路由栈中,天然可以实现切换页面弹窗不消失
DevEco Studio版本:DevEco Studio 5.0.0 Release及以上。 HarmonyOS SDK版本:HarmonyOS 5.0.0 Release SDK及以上。
设备类型:华为手机。 HarmonyOS系统:HarmonyOS 5.0.0 Release及以上。
实现了隐私弹窗不关闭,点击Button后弹出的隐私弹窗点击弹窗外其他位置均不会使弹窗关闭,只有点击同意或不同意才会关闭弹窗。 实现了半模态弹窗与半模态弹窗动态。
@Component
export struct PrivacyDialog {
build() {
NavDestination() {
Stack({ alignContent: Alignment.Center }) {
Column() {
}
.width('100%')
.height('100%')
.backgroundColor('rgba(0,0,0,0.5)')
.transition(
TransitionEffect.OPACITY.animation({
duration: 300,
curve: Curve.Friction
})
)
.onClick(() => {
AppRouter.pop();
})
Column() {
Text('弹窗')
.fontColor(Color.White)
Button('新页面', { stateEffect: true, type: ButtonType.Capsule })
.onClick(() => {
AppRouter.push('privacyPage')
})
}
.width('50%')
.height('30%')
.backgroundColor(Color.Blue)
.transition(
TransitionEffect.scale({ x: 0, y: 0 }).animation({
duration: 300,
curve: Curve.Friction
})
)
}
.width('100%')
.height('100%')
}
.mode(NavDestinationMode.DIALOG)
.hideTitleBar(true)
}
}
entry/src/main/ets/
|---cases
| |---navDialog // 自定义弹窗组件
| | |---view
| | | |---PrivacyDialogView.ets
| | | |---PrivacyPage.ets
| | |---CaseDialog.ets
| | |---CustomDialog.ets
| | |---DefaultDialog.ets
| | |---PrivacyDialog.ets
| | |---SheetDialo.ets
|---common
| |---CommonConstants.ets
|---entryability
| |---EntryAbility.ets
|---pages
| |---index.ets // 页面入口
|---router
| |---AppRouter.ets // 路由工具类
|---util
| |---AppDialog.ets // 封装弹窗控制器,定义弹窗UI组件
修改内容 | 时间 |
---|---|
修改README | 2025/1/22 |
亲爱的Harmony Next开发者,您好!
为了协助您高效开发,提高鸿蒙场景化示例的质量,希望您在浏览或使用后抽空填写一份简单的问卷,我们将会收集您的宝贵意见进行优化
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。