HarmonyOS List+Grid等嵌套情况时,如何禁止掉Grid的滑动,或者不影响List的滑动

HarmonyOS
2024-12-26 14:07:48
876浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
Excelsior_abit

可以给Grid添加一个可滚动容器组件的控制器:scroller: Scroller = new Scroller(),Grid(this.scroller),然后给grid添加nestedScroll属性。参考代码如下:

@Entry
@Component
struct Page3 {
  arr: number[] =
    [1, 2, 3, 4, 5, 6, 7, 8, 9, 90, 0, 1, 231, 3, 13, 1, 423, 4, 234, 324, 53, 45, 234, 2, 345, 235, 34, 53, 45, 346]
  scroller: Scroller = new Scroller()
  build() {
    Column() {
      Text('根节点')
      Stack({ alignContent: Alignment.BottomStart }) {
        Column() {
          Flex() {
            List() {
              ForEach(this.arr, (item: number) => {
                if (item !== 231) {
                  ListItem() {
                    Text(item.toString())
                  }
                  .height(20)
                } else {
                  ListItem() {
                    Column() {
                      Grid(this.scroller) {
                        ForEach(this.arr, (item2: number) => {
                          GridItem() {
                            Text(item2.toString())
                          }
                          .height(30)
                          .backgroundColor(Color.Grey)
                        })
                      }
                      .nestedScroll({
                        scrollForward: NestedScrollMode.SELF_FIRST,
                        scrollBackward: NestedScrollMode.SELF_FIRST
                      })
                      .width('100%')
                      .columnsGap(10)
                      .rowsGap(10)
                      .columnsTemplate('1fr 1fr 1fr 1fr')
                      .height(200)
                      Text('column')
                    }

                  }
                }
              })
            }
            .constraintSize({maxHeight:600})
            Text('flex')
              .width(60)
          }
        }
        .width('100%')
        .height('80%')
        .backgroundColor(Color.Green)
      }
      .width('100%')
      .height('50%')
      .backgroundColor(Color.Grey)
    }
    .width('100%')
    .height('100%')
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.

参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-container-scroll-V5#nestedscrolloptions10%E5%AF%B9%E8%B1%A1%E8%AF%B4%E6%98%8E

分享
微博
QQ
微信
回复
2024-12-26 17:31:16
相关问题
HarmonyOS List嵌套ListList嵌套Grid问题
885浏览 • 1回复 待解决
HarmonyOS 组件List如何禁止滑动
1496浏览 • 1回复 待解决
scroll和list嵌套滑动
2537浏览 • 1回复 待解决
HarmonyOS List组件不能嵌套Grid组件吗
655浏览 • 1回复 待解决
HarmonyOS list嵌套MapComponent滑动冲突
581浏览 • 1回复 待解决
HarmonyOS Scroll嵌套List滑动问题
779浏览 • 1回复 待解决
HarmonyOS Grid横向滑动
1164浏览 • 1回复 待解决
HarmonyOS scroll嵌套List不能整体滑动
1333浏览 • 1回复 待解决
HarmonyOS list 嵌套web滑动切换问题
1219浏览 • 1回复 待解决
HarmonyOS List嵌套waterflow滑动卡顿
1011浏览 • 1回复 待解决
HarmonyOS Scroll中嵌套List滑动事件冲突
809浏览 • 1回复 待解决
HarmonyOS scroll嵌套list页面无法滑动
1393浏览 • 1回复 待解决