HarmonyOS 鸿蒙Next List内容高度怎么获取
HarmonyOS 鸿蒙Next List内容高度怎么获取
我现在要做长截图,包含List组件。我需要获取到List内容高度,然后计算截图和裁剪数据。
但是现在发现了一个问题,如果直接使用List,即便是在不设置height情况下,通过onAreaChange获取的高度也只有一屏幕的高度。除非我在List外面包裹一层Scroll,List组件不设置height,Scroll设置height,这样onAreaChange的高度就是List内容的高度了。
问题:在不包裹Scroll的情况下(最好List也设置了height情况下),我如何能获取到List内容的高度呢?
Scroll(){
List(){
//…
}
.width(‘100%’)
.backgroundColor(Color.Gray)
.onAreaChange((oldValue: Area, newValue: Area)=>{
console.log( 'List onAreaChange: ’ + newValue.height)
})
}
.height(‘100%’)
.onAreaChange((oldValue: Area, newValue: Area)=>{
console.log( 'Scroll onAreaChange: ’ + newValue.height)
})
4 回复
老哥有解决这个问题吗,我想做平滑加载更多,在滚动到列表长度的一半时候就去请求接口,但也是拿不到列表的实际高度
这个获取组件的信息:
这个获取组件相关参数:
还有个就是给组件赋值ID再获取
.id('SelectList')
let jsonStr = getInspectorByKey('SelectList')
let jsondata = JSON.parse(jsonStr)
let attr = jsondata.$attrs
let size = attr.size
console.info('------>parent:'+size.width+'---'+size.height)
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
还是推荐怎么琢磨整整自适应布局
我记得有个方法可以获取,但是这样肥肠不推荐,性能不好嘞,我找找
在HarmonyOS鸿蒙Next中获取List内容的高度,可以通过以下方法实现:
- 使用组件区域变化事件:利用
onAreaChange
事件监听List组件的区域变化,该事件会在组件大小或位置发生变化时触发。通过回调函数中返回的Area
对象,可以获取到List组件当前的宽度和高度。 - 确保List组件高度可变:在List组件的布局中,不要固定其高度,而是让其根据内容动态调整。这样,
onAreaChange
事件获取到的高度才会是List内容的真实高度。 - 考虑嵌套情况:如果List组件被嵌套在其他组件中(如Scroll),需要确保外层组件的高度设置不会限制List组件的高度变化。可以通过在外层组件上也使用
onAreaChange
事件来监控其高度变化,从而间接获取List内容的高度。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。