HarmonyOS 鸿蒙Next listItem 怎么获取每条的高度,这样获取的高度不是按照顺序来的
HarmonyOS 鸿蒙Next listItem 怎么获取每条的高度,这样获取的高度不是按照顺序来的
listItem 怎么获取每条的高度,这样获取的高度不是按照顺序来的 懒加载好像是拿到下一页的高度
Swiper(this.swiperController!!) {
LazyForEach(this.calendarDataSource, (item: CalendarModelList) => {
Column() {
//日期列表
List() {
ForEach(this.changeData(item), (item: CalendarModelList) => {
ListItem() {
CalendarListItem({ dateList: item })
}.onAreaChange((oldValue: Area, newValue: Area) => {
if (newValue.height as number != oldValue.height as number) {
console.info("item高度" + (newValue.height as number))
}
})
})
}
}
})
}
更多关于HarmonyOS 鸿蒙Next listItem 怎么获取每条的高度,这样获取的高度不是按照顺序来的的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
可以通过onDidScroll,当列表滑动时触发,返回当前帧滑动的偏移量,通过这个计算每一条的高度
更多关于HarmonyOS 鸿蒙Next listItem 怎么获取每条的高度,这样获取的高度不是按照顺序来的的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS中,如果你正在使用列表组件(如ListContainer)并需要获取每个列表项(listItem)的高度,但发现获取的高度顺序不正确,这通常是由于视图布局和测量时机的问题。
在HarmonyOS中,视图的高度是在布局和测量阶段确定的。如果你直接在视图添加后立即获取高度,可能会因为布局还未完成而导致获取到错误或不完整的信息。正确的方式是使用布局完成后的回调来获取高度。
你可以尝试以下方法:
-
使用组件的
onLayoutFinished
回调:如果ListContainer或其中的Item组件提供了此类回调,你可以在布局完成后获取高度。 -
遍历子视图:在ListContainer布局完成后,遍历其子视图,通过
getHeight()
方法获取每个子视图(即listItem)的高度。确保这一操作在布局完全完成后进行。 -
使用自定义Layout:如果上述方法不适用,你可以考虑自定义Layout,重写其测量和布局方法,在合适的时机记录每个子视图的高度。
请确保你的获取高度操作是在UI线程中执行,并且是在布局完全稳定后进行。如果问题依旧没法解决请联系官网客服, 官网地址是 https://www.itying.com/category-93-b0.html