Refresh组件不支持设置nestedScroll属性?

希望实现点击黑粉列表区域向下滚动时,先滚父容器使得红色区域先滚动到最大,再滚动黑粉区域,触发refresh效果不套Refresh组件时可通过设置List的nestedScroll属性实现上述滚动顺序(删除demo中的refresh组件后可达到预期效果),但由于Refresh不支持设置nestedScroll属性,导致该效果无法实现

代码:

@Entry
@Component
struct Index {
  @State isRefreshing: boolean = false

  build() {
    Stack() {
      List() {
        ListItem() {
          Stack().height(500).width('100%').backgroundColor(Color.Red)
        }

        ListItem() {
          Column() {

            Refresh({ refreshing: $$this.isRefreshing }) {
              List() {
                ListItem() {
                  Stack().height(100).width('100%').backgroundColor(Color.Black)
                }

                ListItem() {
                  Stack().height(100).width('100%').backgroundColor(Color.Pink)
                }
              }
              .nestedScroll({
                scrollForward: NestedScrollMode.PARENT_FIRST,
                scrollBackward: NestedScrollMode.PARENT_FIRST
              })
              .height('100%')
            }
            .onRefreshing(() => {
              setTimeout(() => {
                this.isRefreshing = false
              }, 2000)
              console.log('onRefreshing test')
            })
          }.height(500)
        }
      }
    }
    .width('100%').height('100%')
  }
}
阅读 188
1 个回答

将List组件的属性edgeEffect设置如下可以实现对应效果: List(){ ... } .edgeEffect(EdgeEffect.None,{alwaysEnabled:true})

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进