HarmonyOS 鸿蒙Next Scroll嵌套固定size的Grid无法滚动

发布于 1周前 作者 itying888 最后一次编辑是 5天前 来自 鸿蒙OS

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无法滚动的问题,可以尝试以下解决方案:

  1. 设置高度限制:确保Scroll组件有明确的高度限制,因为滚动效果需要内部内容超出高度限制才会显现。可以尝试为Scroll外的容器设置高度属性,如.height('100%'),同时确保Grid的高度没有超出Scroll的限制。
  2. 调整Grid的滚动属性:如果Grid内部不需要滚动,可以尝试禁用其滚动属性,或者设置Grid的嵌套滚动属性,以兼容Scroll的滚动。
  3. 检查手势事件:在嵌套滚动的场景中,手势事件的冲突可能导致滚动异常。建议检查是否使用了parallelGesture属性,该属性可能会导致子列表无法传递滚动到父容器。如有使用,可以尝试替换为onTouch事件。

以上解决方案仅供参考,如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部