HarmonyOS 鸿蒙Next中半模态转场bindSheet如何固定内容高度,禁止跟手滑动?

HarmonyOS 鸿蒙Next中半模态转场bindSheet如何固定内容高度,禁止跟手滑动?

bindSheet设置height后,弹出框依然可以跟手滑动,并且有回弹效果,如何能让半模态高度固定并且不跟手滑动?

5 回复

bindSheet布局外层用Scroll

或者onTouchIntercept拦截

.onTouchIntercept((data) =>{
  return HitTestMode.Block;
})

直接阻断手势

更多关于HarmonyOS 鸿蒙Next中半模态转场bindSheet如何固定内容高度,禁止跟手滑动?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


感谢
但是用onTouchIntercept后bindSheet里的内容就不能点击了,外层用Scroll好用,

使用其他HitTestMode应该也可以实现,效果实现就好,

在HarmonyOS Next中,要固定半模态转场bindSheet的内容高度并禁止跟手滑动,可以通过以下方式实现:

  1. 在sheet组件的构造参数中设置dragBar属性为false来禁用拖拽条
  2. 使用height属性明确指定固定高度值
  3. 设置enableDragfalse来完全禁用滑动交互

示例代码:

bindSheet({
  height: '60%',  // 固定高度
  dragBar: false,  // 隐藏拖拽条
  enableDrag: false  // 禁用滑动
})

在HarmonyOS Next中,要实现半模态转场(bindSheet)固定高度且禁止跟手滑动的效果,可以通过以下方式实现:

  1. 使用SheetStyle设置固定高度并禁用交互:
bindSheet({
  sheetStyle: {
    height: '50%', // 固定高度
    dragBar: false, // 隐藏拖动条
    interactive: false // 禁用交互手势
  }
})
  1. 如果需要完全禁用滑动行为,可以结合SheetInteraction配置:
bindSheet({
  sheetStyle: {
    height: '500vp', // 使用具体数值
    dragBar: false
  },
  interaction: {
    swipeToDismiss: false, // 禁止滑动关闭
    followHand: false // 禁止跟手
  }
})

注意:禁用交互后,用户将无法通过手势关闭弹窗,需要提供其他关闭方式(如按钮)。

回到顶部