通过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
相关问题
如何设置全屏返回的动效
870浏览 • 1回复 待解决
如何监听手机“返回”物理按键?
8867浏览 • 2回复 已解决
弹窗跳转到页面返回弹窗不消失
548浏览 • 1回复 待解决
富文本扩展点击监听返回url
460浏览 • 1回复 待解决
组合手势被抽离成方法不生效
368浏览 • 1回复 待解决
返回页面时不触发aboutToAppear
1563浏览 • 1回复 待解决
基于滚动组件的手势处理
36浏览 • 1回复 待解决