HarmonyOS 鸿蒙Next bindSheet 嵌套 Scroll 导致 scroll 的scrollBy 方法失效
下面是我的最小可复现代码 请问我怎么解决这个问题?
点击第一个卡片,不会有任何反应 如果给Scroll添加一个 100%的高度,那scrollBy方法就会起作用,但是整个scroll的滑动就会失效
export struct TestPage {
scroller: Scroller = new Scroller()
@Builder myBuilder() {
Scroll(this.scroller) {
Column(){
Row() {
Text("点击向下滑动550")
.fontSize("14fp")
.fontWeight(FontWeight.Bold)
.fontColor("#fff")
}
.clickEffect(DefaultClickEffect)
.onClick(() => {
console.log('no search text')
this.scroller.scrollBy(0, 550)
})
.height("210vp")
.width("100%")
.backgroundColor("#ffc67272")
.margin({
bottom: "10vp"
})
ForEach([1,2,3,4,5,6,7,8,9,10,11], (item: number) => {
Row()
.height("210vp")
.width("100%")
.backgroundColor("#ffc67272")
.margin({
bottom: "10vp"
})
}, (item: number) => item + "")
}
}
.nestedScroll({
scrollForward: NestedScrollMode.PARENT_FIRST,
scrollBackward: NestedScrollMode.SELF_FIRST
})
.scrollBar(BarState.Off)
.edgeEffect(EdgeEffect.None)
.backgroundColor("#0ff")
.width('100%')
// .height("100%")
}
build() {
RelativeContainer(){
Column(){
}
.height("100%")
.backgroundColor("#ff0")
.bindSheet(true, this.myBuilder(), {
width: "100%",
showClose: false,
height: "100%",
enableOutsideInteractive: true,
preferType: SheetType.BOTTOM,
title: null,
dragBar: false,
borderWidth: 0,
shouldDismiss: () => {},
backgroundColor: Color.Transparent,
borderColor: Color.Transparent,
scrollSizeMode: ScrollSizeMode.CONTINUOUS,
})
}
}
}
更多关于HarmonyOS 鸿蒙Next bindSheet 嵌套 Scroll 导致 scroll 的scrollBy 方法失效的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于HarmonyOS 鸿蒙Next bindSheet 嵌套 Scroll 导致 scroll 的scrollBy 方法失效的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
不是,scroll的滑动会失效,scroll 就不能向下滑动了
是在真机上还是模拟器上不能滑动,我试了下,加100%是可以滑动的
在HarmonyOS鸿蒙系统中,当bindSheet
嵌套Scroll
组件时,若scrollBy
方法失效,可能是由于事件冲突或组件层级管理不当引起的。以下是可能的原因及解决方法简述:
-
事件传递:检查
bindSheet
和Scroll
组件的事件处理逻辑,确保滚动事件能够正确传递到Scroll
组件。在嵌套结构中,外层组件的事件监听可能会拦截并消耗滚动事件,导致内层Scroll
组件无法响应。 -
组件状态:验证
Scroll
组件的可见性和可交互状态。若Scroll
组件被设置为不可见或禁用,其scrollBy
方法自然无法生效。 -
布局约束:检查
bindSheet
和Scroll
组件的布局约束条件,确保Scroll
组件有足够的空间进行滚动。如果布局约束限制了Scroll
组件的滚动范围,scrollBy
方法将无法达到预期效果。 -
版本兼容性:确认使用的HarmonyOS SDK版本是否支持当前的开发需求。在某些版本中,可能存在已知的组件交互问题。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html 。