希望实现点击黑粉列表区域向下滚动时,先滚父容器使得红色区域先滚动到最大,再滚动黑粉区域,触发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%')
}
}
将List组件的属性edgeEffect设置如下可以实现对应效果: List(){ ... } .edgeEffect(EdgeEffect.None,{alwaysEnabled:true})