HarmonyOS 鸿蒙Next List onScrollVisibleContentChange 无效
HarmonyOS 鸿蒙Next List onScrollVisibleContentChange 无效
// xxx.ets
[@Entry](/user/Entry)
[@Component](/user/Component)
struct Index {
private arr: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
scroller: Scroller = new Scroller();
build() {
Column() {
List({ space: 20, initialIndex: 0 ,scroller: this.scroller}) {
ForEach(this.arr, (item: number) => {
ListItem() {
Text(’’ + item)
.width(‘100%’)
.height(100)
.fontSize(16)
.textAlign(TextAlign.Center)
.borderRadius(10)
.backgroundColor(0xFFFFFF)
}
}, (item: string) => item)
}
.listDirection(Axis.Vertical) // 排列方向
.scrollBar(BarState.Off)
.friction(0.6)
.divider({
strokeWidth: 2,
color: 0xFFFFFF,
startMargin: 20,
endMargin: 20
}) // 每行之间的分界线
.edgeEffect(EdgeEffect.Spring) // 边缘效果设置为Spring
.onScrollIndex((firstIndex: number, lastIndex: number, centerIndex: number) => {
console.info(‘first’ + firstIndex)
console.info(‘last’ + lastIndex)
console.info(‘center’ + centerIndex)
})
.onScrollVisibleContentChange((start: VisibleListContentInfo, end: VisibleListContentInfo) => {
console.log(’ start index: ’ + start.index +
’ start item group area: ’ + start.itemGroupArea +
’ start index in group: ’ + start.itemIndexInGroup)
console.log(’ end index: ’ + end.index +
’ end item group area: ’ + end.itemGroupArea +
’ end index in group: ’ + end.itemIndexInGroup)
})
.onDidScroll((scrollOffset: number, scrollState: ScrollState) => {
console.info(onScroll scrollState = ScrollState
+ scrollState + , scrollOffset =
+ scrollOffset)
})
.width(‘90%’)
}
.width(‘100%’)
.height(‘100%’)
.backgroundColor(0xDCDCDC)
.padding({ top: 5 })
}
}
针对您提到的HarmonyOS(鸿蒙)系统中Next List组件的onScrollVisibleContentChange
方法无效的问题,这通常与事件监听或组件状态更新有关。以下是一些可能的原因分析:
-
事件绑定问题:确保
onScrollVisibleContentChange
方法已正确绑定到Next List组件上。检查是否有拼写错误或绑定方式不正确的情况。 -
组件状态未刷新:在滚动过程中,如果组件的状态没有正确刷新,可能会导致该方法不被触发。检查与滚动相关的状态变量和数据更新逻辑是否正确。
-
系统或SDK版本问题:某些鸿蒙系统版本或SDK中可能存在bug,导致该方法无法正常工作。确认您使用的鸿蒙系统版本和SDK版本是否支持该功能,并查看相关文档或更新日志。
-
自定义组件影响:如果Next List组件被封装在自定义组件中,确保自定义组件正确传递了滚动事件。
请根据上述分析检查您的代码和配置。
鸿蒙Next教程已发布,可以先学学,早学早涨薪:https://www.itying.com/category-93-b0.html