flutter :CustomScrollView+SliverGrid+SliverList

在实际业务场景中经常见到这样的布局,顶部是网格布局(GridView),然后是列表布局(ListView),滚动的时候作为一个整体,这时候就需要使用CustomScrollView+SliverGrid+SliverList来实现。

  1. CustomScrollView是使用Sliver组件创建自定义滚动效果的滚动组件。使用场景:(1)ListView和GridView相互嵌套场景(2)一个页面顶部appBar,然后是GridView,最后是ListView,这 3个区域以整体来滚动,AppBar具有吸顶效果。
  2. Sliver系列组件:
SLiver名称功能对应的可滚动组件
SliverList列表ListView
SliverFixedExtentList高度固定的列表ListView,指定itemExtent时
SliverAnimatedList添加/删除列表项可以执行动画AnimatedList
SliverGrid网格GridView
SliverPrototypeExtentList根据原型生成高度固定的列表ListView,指定prototypeItem 时
SliverFillViewport包含多个子组件,每个都可以填满屏幕PageView

除了和列表对应的 Sliver 之外还有一些用于对 Sliver 进行布局、装饰的组件,它们的子组件必须是 Sliver,我们列举几个常用的:

Sliver名称对应 RenderBox
SliverPaddingPadding
SliverVisibility、SliverOpacityVisibility、Opacity
SliverFadeTransitionFadeTransition
SliverLayoutBuilderLayoutBuilder

还有一些其它常用的 Sliver:

Sliver名称说明
SliverAppBar对应 AppBar,主要是为了在 CustomScrollView 中使用。
SliverToBoxAdapter一个适配器,可以将 RenderBox 适配为 Sliver,后面介绍。
SliverPersistentHeade滑动到顶部时可以固定住

SliverAppBar:

  • expandedHeight:展开时AppBar的高度。
  • flexibleSpace:空间大小可变的组件。
  • floating:向上滚动时,AppBar会跟随滑出屏幕;向下滚动时,会有限显示AppBar,只有AppBar展开时才会滚动ListView。
  • pinned:当SliverAppBar内容滑出屏幕时,将始终渲染一个固定在顶部的收起状态AppBar。
  • snap:当手指离开屏幕时,AppBar会保持跟手指滑动方向一致的状态,即手指上滑则AppBar收齐,手指下滑则AppBar展开。
  • stretch:是否拉伸
  • 只有floating设置为true时,snap才可以设置为true。

参考文章

如果在CustomScrollView中用到了其他非Sliver系列的组件,需要使用SliverToBoxAdapter将这些组件包裹起来。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值