详解闲鱼KUN嵌套滚动容器设计与实现

本文详细介绍了闲鱼在Flutter生态中构建嵌套滚动容器组件KUN的背景、核心能力设计及实现,包括弹性效果、多元素吸顶、滚动恢复和手势冲突解决。通过kun-nested封装优化,实现高性能和动态性,已成功应用于多个业务场景,提升了页面性能和交互体验。
摘要由CSDN通过智能技术生成

背景介绍

在电商频道/导购详情页中,为让页面信息呈现更多更丰富效果经常使用嵌套滚动容器搭建页面,常在大促/首页/频道/信息流等多SPU/多频道关键信息场景下使用,今年从kun支持第一个闲鱼超市业务到双十一项目整个过程中,悉数落地7个业务场景中嵌套滚动容器构建页面占据6个。

从技术角度,嵌套滚动容器组件属于复合性交互容器组件,包括手势冲突/交互体验/流畅度等方向会面临挑战,比如在H5因其机制在模拟手势交互过程会存在一些限制,为保证动态性/高性能/强体验,KUN 基于Flutter生态,构建一个复杂交互高性能的嵌套滚动跨端容器组件,保证其具备高性能/强交互/一致性/动态性,本文将详细解释kun实现嵌套滚动容器过程中面临挑战和解决方案。

容器核心能力设计

嵌套滚动通常称为Nested,其内部常为纵轴滚动+横轴滚动+纵轴滚动的嵌套组合,为同一方向的手势冲突问题需要特殊机制解决,典型业务场景下页面框架大致如下所示:

1b6682997861590cd7834bee59e889df.png
  • • appBar:存在沉侵式/非沉侵式两种情况;

  • • head:放置核心坑位元素;

  • • Tab :多频道/多品类的聚合SPU信息分类,经常具备吸顶/或吸附appBar底部能力;

  • • PageView:具备横向滑动性质的聚合多页面,页面和tab数量一对一对应;

    • • head:在pageView内部二级Tab导购聚合SPU信息;

    • • listView/waterFall:核心的商品展示内容区;

从实际业务效果总结出容器架构至少必须保证如下几个关键核心能力:

  • • 弹性效果:具备下拉刷新/上拉加载功能,保证弹性效果和iOS一致;

  • • 多pinned吸顶:具备多元素吸顶效果,无论在head/tab/pageView-head区域都具备多元素叠加吸顶;

  • • 滚动恢复:pageView中的容器滚动位置记录恢复;

  • • 手势冲突:滑动连贯性以及手势冲突解决。

关键能力实现

弹性效果实现

  • • 下拉刷新:由于nested内部使用的是clamping类型的physics,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值