HarmonyOS 鸿蒙Next ListItemGroup中再次嵌套list,里层的list如何实现通过scroller滚动到指定index

发布于 1周前 作者 eggper 来自 鸿蒙OS

HarmonyOS 鸿蒙Next ListItemGroup中再次嵌套list,里层的list如何实现通过scroller滚动到指定index

【关键字】

ListItemGroup / 嵌套list / scroller

【问题描述】

ListItemGroup中再次嵌套list,里层的list如何实现通过scroller滚动到指定index。

代码实现场景如下:

List(){
ListItem()
ListItem()
ListItemGroup({ header: this.moreContentHead() }) {
ListItem(){
List()
}
}
}<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

ListItemGroup中的header是为了实现标题悬停效果,点击header中的指定项希望里层的list能滚动到指定位置,但是由于外层嵌套List无法实现这个效果。整体效果参照android的AppbarLayout。

【解决方案】

两个list嵌套,内部list没有高度因此无法设置跳转效果。

  • 方案一:可以设置内部高度来实现

  • 方案二:去掉内部的list等待上述所说的版本发布后使用scrollToItemInGroup方法实现

  • 方案三:您可以将外部的list换成scroll,吸顶效果使用Tabs来实现,参考结构如下。

Scroll(){
Column(){
…
Tabs({ barPosition: BarPosition.Start }){
TabContent(){}.tabBar(‘预定行程’)
TabContent(){}.tabBar(‘旅游服务’)
…
}
}
}<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

9 回复
太棒了,方案二完美解决!

scrollToItemInGroup 出来了吗

api11就有,用ListScroller

还有个问题,如果监听内部ListItemGroup的滚动呢。业务上需要内部list滚动到对应的位置时候,选中吸顶的tab栏对应的tab。目前只找到外部List的onScrollIndex,内部的滚动好像无法监听

建议您通过在线工单系统进行描述问题,会有专人答复。 https://developer.huawei.com/consumer/cn/support/feedback/#/add/89?level2=9016

是否有方案了,兄弟

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17

在HarmonyOS鸿蒙开发中,若要在ListItemGroup中嵌套的里层list实现通过scroller滚动到指定index,你需要确保以下几点:

  1. 获取里层List组件:首先,你需要通过findComponentById或其他方法获取到里层list的组件实例。

  2. 使用Scroller API:鸿蒙提供了Scroller类用于实现平滑滚动效果。你需要创建一个Scroller实例,并调用其startScroll方法来设置滚动参数,包括滚动开始和结束的位置、滚动时间等。

  3. 监听滚动事件:通过实现IScrollListener接口,监听滚动事件,确保滚动到指定位置。

  4. 设置List的滚动位置:通过调用list组件的滚动方法(如scrollToIndex,如果存在的话,或通过setScrollY等类似方法),结合Scroller的当前位置来实现滚动到指定index

  5. 更新UI:在滚动过程中,需要不断调用invalidate来刷新UI,确保滚动效果实时更新。

如果上述步骤正确实施,你应该能够实现里层list通过scroller滚动到指定index。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部