HarmonyOS 鸿蒙Next Scroll嵌套固定size的Grid无法滚动
HarmonyOS 鸿蒙Next Scroll嵌套固定size的Grid无法滚动
Grid固定大小,超过父视图的scroll,但grid无法跟随scroll滚动。我记得Api12之前还是可以的,这个代码有什么问题吗
struct Index {
[@State](/user/State) data: LazyDataSource<number> = new LazyDataSource()
aboutToAppear(): void {
this.data.initData([0,1,2,3,4,5,6,7,8,9,10,11,12,13])
}
build() {
RelativeContainer() {
Scroll() {
Grid() {
LazyForEach(this.data, (item: number)=>{
GridItem() {
Text(`${item}`)
.fontColor(Color.White).textAlign(TextAlign.Center).width('100%').height('100%')
}
.backgroundColor(Color.Blue)
.borderRadius('4vp')
.size({width:'50vp', height:'50vp'})
}, (item: number) => item.toString())
}
.position({left:0, top:0})
.columnsGap(4)
.rowsGap(4)
.maxCount(this.data.totalCount())
.layoutDirection(GridDirection.Row)
.cellLength(50)
.size({width:'536vp', height:'100%'})
}
.padding(4)
.scrollable(ScrollDirection.Horizontal)
.backgroundColor(Color.Red)
.size({width:'200vp', height:'60vp'})
}
.height('60vp')
.width('200vp')
}
}
1 回复
针对HarmonyOS 鸿蒙Next Scroll嵌套固定size的Grid无法滚动的问题,可以尝试以下解决方案:
- 设置高度限制:确保Scroll组件有明确的高度限制,因为滚动效果需要内部内容超出高度限制才会显现。可以尝试为Scroll外的容器设置高度属性,如
.height('100%')
,同时确保Grid的高度没有超出Scroll的限制。 - 调整Grid的滚动属性:如果Grid内部不需要滚动,可以尝试禁用其滚动属性,或者设置Grid的嵌套滚动属性,以兼容Scroll的滚动。
- 检查手势事件:在嵌套滚动的场景中,手势事件的冲突可能导致滚动异常。建议检查是否使用了
parallelGesture
属性,该属性可能会导致子列表无法传递滚动到父容器。如有使用,可以尝试替换为onTouch
事件。
以上解决方案仅供参考,如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html 。