通过bindContentCover显示全屏模态页面,弹出后需要用手势返回的话,怎样监听到手势返回事件

Button("transition modal 2") 
.margin(10) 
.fontSize(20) 
.onClick(()=>{ 
this.isShow2 = true; 
}).bindContentCover(this.isShow2, this.myBuilder2(), {modalTransition: ModalTransition.NONE, backgroundColor: Color.Orange, onAppear: () => {console.log("BindContentCover onAppear.")}, onDisappear: () => {console.log("BindContentCover onDisappear.")}})

通过bindContentCover控制模态页面是否显示,手势返回后,该字段值无法设置为false,不能再次触发展示。

HarmonyOS
2024-04-29 17:13:40
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
NingJ

有两种解决方案:

方案一: 双向绑定 使用$$绑定第一个参数,通过手势返回后该值会默认变为false。

.bindContentCover($$this.isShowPlay, this.musicPlayBuilder(), ModalTransition.DEFAULT)

方案二: @Builder  写的自定义组件的第一个组件外层通过onDisAppear监听该组件的消失,在消失的回调中设置该值为false

.onDisAppear(() => {     this.isShowPlay = false; })
分享
微博
QQ
微信
回复
2024-04-30 11:07:09
相关问题
如何设置全屏返回的动效
227浏览 • 1回复 待解决
如何监听手机“返回”物理按键?
8292浏览 • 2回复 已解决
返回页面时不触发aboutToAppear
711浏览 • 1回复 待解决
Web组件如何开启手势缩放
63浏览 • 1回复 待解决
华为事件通知接口返回10008错误码
7253浏览 • 2回复 待解决
Image组件如何实现双指手势放大
222浏览 • 1回复 待解决