HarmonyOS @state修饰的变量作为判断条件 控制onTouchIntercept事件拦截,不能实时生效

@State sheetHeight:number = 60;
  • 1.

对list时间拦截:

.onTouchIntercept((event: TouchEvent) => {
  if(this.sheetHeight <= 500){
    return HitTestMode.None
  }
  return HitTestMode.Default
})
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

监听高度变化:

.bindSheet($$this.isShow, this.myBuilder(), {
  detents: [60, 700, 500],
  backgroundColor: Color.Gray,
  enableOutsideInteractive: true,
  showClose: false,
  scrollSizeMode: ScrollSizeMode.CONTINUOUS,
  dragBar: false,
  onHeightDidChange: (height: number) => {
    console.log("height = " + px2vp(height));
    this.sheetHeight = px2vp(height);
  },
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.

当bindsheet高度为700时,list不能正常滚动,拦截事件还是return HitTestMode.None

HarmonyOS
2025-01-09 15:05:45
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
Heiang

可参考如下demo:scroll根据获取的手指上滑高度同步滑动list,第一次手指松开后保存list滚的状态

.onGestureJudgeBegin((gestureInfo: GestureInfo, event: BaseGestureEvent) => {
  //
  if (this.canScroll) {
    console.log(':::GestureJudgeResult.CONTINUE')
    return GestureJudgeResult.CONTINUE
  } else {
    console.log(':::GestureJudgeResult.REJECT')
    return GestureJudgeResult.REJECT
  }
})
  .onSizeChange((oldValue: SizeOptions, newValue: SizeOptions) => {
    console.info(`Ace: on size change, oldValue is ${JSON.stringify(oldValue)} value is ${JSON.stringify(newValue)}`)
    if (this.sheetHeight <= 500) {
      this.canScroll = false;
    } else {
      this.canScroll = true;
      this.scroller.scrollTo({ xOffset: 0, yOffset: this.sheetHeight-500, animation: false })
    }
  })
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
分享
微博
QQ
微信
回复
2025-01-09 17:15:06


相关问题
HarmonyOS @State 是不是不能修饰枚举
798浏览 • 1回复 待解决
HarmonyOS 枚举值条件判断生效
686浏览 • 1回复 待解决
@State 修饰变量值改变,界面不刷新
2375浏览 • 1回复 待解决
点击事件,@State 页面未生效,在线等
3427浏览 • 0回复 待解决
HarmonyOS @State可以修饰对象数组
576浏览 • 1回复 待解决
HarmonyOS " @State可以修饰ArrayList吗"
1016浏览 • 1回复 待解决
用数组变量控制组件属性不生效
2181浏览 • 1回复 待解决
HarmonyOS @state可以修饰对象数组么
531浏览 • 1回复 待解决
组件复用生效条件有哪些?
716浏览 • 1回复 待解决
LocalStorageLink修饰变量会自动保存
1594浏览 • 1回复 待解决
var能否修饰ArkTS中变量
1056浏览 • 1回复 待解决
恭喜您,今日已阅读两篇内容,特奖励+2声望, 快来领取吧。