HarmonyOS鸿蒙Next中半模态在下拉关闭时会有回弹效果,应该怎么处理

HarmonyOS鸿蒙Next中半模态在下拉关闭时会有回弹效果,应该怎么处理 当开发者需要用到shouldDimissonWillDismiss来处理半模态关闭事件,在下拉关闭时半模态会出现一个回弹的现象,此时可以通过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()
          },
        })
    }
  }
}

实际效果:

image


更多关于HarmonyOS鸿蒙Next中半模态在下拉关闭时会有回弹效果,应该怎么处理的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于HarmonyOS鸿蒙Next中半模态在下拉关闭时会有回弹效果,应该怎么处理的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,处理半模态在下拉关闭时的回弹效果,可以通过以下步骤进行优化:

  1. 检查动画配置:确保半模态的关闭动画配置正确,避免不必要的回弹效果。
  2. 调整阻尼参数:在动画配置中增加阻尼参数,减少回弹的幅度。
  3. 使用自定义动画:如果默认动画无法满足需求,可以自定义关闭动画,确保平滑过渡。
  4. 监听手势事件:在手势结束时,立即停止动画,避免回弹。

通过这些方法,可以有效减少或消除半模态关闭时的回弹效果,提升用户体验。

回到顶部