HarmonyOS鸿蒙Next中半模态在下拉关闭时会有回弹效果,应该怎么处理
HarmonyOS鸿蒙Next中半模态在下拉关闭时会有回弹效果,应该怎么处理
当开发者需要用到shouldDimiss
或onWillDismiss
来处理半模态关闭事件,在下拉关闭时半模态会出现一个回弹的现象,此时可以通过onWillSpringBackWhenDismiss
事件在回调函数中不调用springBack
来取消回弹效果。
示例如下:
// xxx.ets
@Entry
@Component
struct bindSheetExample {
@State isShow: Boolean = false;
@Builder
myBuilder() {
Column() {
Button() {
Text("CONTEXT")
}.height(50)
}
}
build() {
Column() {
Button("NoRegisterSpringback")
.onClick(() => {
this.isShow = true
})
.fontSize(20)
.margin(10)
.bindSheet($$this.isShow, this.myBuilder(), {
height: SheetSize.MEDIUM,
blurStyle: BlurStyle.Thick,
showClose: true,
title: { title: "title", subtitle: "subtitle" },
preferType: SheetType.CENTER,
onWillDismiss: (DismissSheetAction: DismissSheetAction) => {
if (DismissSheetAction.reason == DismissReason.SLIDE_DOWN) {
DismissSheetAction.dismiss() //注册dismiss行为
}
},
onWillSpringBackWhenDismiss: (SpringBackAction: SpringBackAction) => {
//没有注册springBack, 下拉半模态页面无回弹行为
//SpringBackAction.springBack()
},
})
}
}
}
实际效果:
更多关于HarmonyOS鸿蒙Next中半模态在下拉关闭时会有回弹效果,应该怎么处理的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于HarmonyOS鸿蒙Next中半模态在下拉关闭时会有回弹效果,应该怎么处理的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,处理半模态在下拉关闭时的回弹效果,可以通过以下步骤进行优化:
- 检查动画配置:确保半模态的关闭动画配置正确,避免不必要的回弹效果。
- 调整阻尼参数:在动画配置中增加阻尼参数,减少回弹的幅度。
- 使用自定义动画:如果默认动画无法满足需求,可以自定义关闭动画,确保平滑过渡。
- 监听手势事件:在手势结束时,立即停止动画,避免回弹。
通过这些方法,可以有效减少或消除半模态关闭时的回弹效果,提升用户体验。