通过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
相关问题
HarmonyOS 如何禁用页面返回手势
81浏览 • 1回复 待解决
HarmonyOS 拦截系统返回手势问题
109浏览 • 1回复 待解决
如何禁用系统左右手势返回
80浏览 • 1回复 待解决
HarmonyOS 侧滑返回事件拦截与绑定
759浏览 • 1回复 待解决