Flutter 提供了许多内置的自动滚动组件,也提供了多种可自定义的组件,以创建特定的滚动行为。

基本滚动

#

许多 Flutter 组件开箱即用地支持滚动,并为你完成了大部分工作。例如,SingleChildScrollView 在必要时会自动滚动其子组件。其他有用的组件包括 ListViewGridView。你可以在 Widget 目录的滚动页面上查看更多此类组件。

在新标签页中观看 YouTube 视频:"Scrollbar | Flutter 本周组件"

在新标签页中观看 YouTube 视频:"ListView | Flutter 本周组件"

无限滚动

#

当你的 ListViewGridView 中有很长的项目列表(包括无限列表)时,你可以在项目滚动到视图中时按需构建它们。这提供了性能更高的滚动体验。欲了解更多信息,请查看 ListView.builderGridView.builder

专用可滚动组件

#

以下组件提供了更具体的滚动行为。

关于使用 DraggableScrollableSheet 的视频

在新标签页中观看 YouTube 视频:"DraggableScrollableSheet | Flutter 本周组件"

使用 ListWheelScrollView 将可滚动区域变成滚轮效果!

在新标签页中观看 YouTube 视频:"ListWheelScrollView | Flutter 本周组件"

花式滚动

#

也许你想实现弹性滚动,也称为滚动回弹。或者你想实现其他动态滚动效果,例如视差滚动。或者你想要一个具有非常特定行为(例如收缩或消失)的滚动标题。

使用 Flutter 的 Sliver* 类,你可以实现所有这些以及更多功能。Sliver 指的是可滚动区域的一部分。你可以定义一个 sliver 并将其插入到 CustomScrollView 中,从而对该区域进行更细粒度的控制。

欲了解更多信息,请查看使用 sliver 实现花式滚动Sliver 类

嵌套滚动组件

#

如何在不影响滚动性能的情况下,将一个滚动组件嵌套到另一个滚动组件中?你是将 ShrinkWrap 属性设置为 true,还是使用 sliver?

查看"ShrinkWrap vs Slivers"视频

在新标签页中观看 YouTube 视频:"ShrinkWrap vs Slivers | 解码 Flutter"