跳到主内容

滚动

Flutter 滚动支持概览

Flutter 有许多内置的自动滚动组件,也提供各种可供自定义的组件,以实现特定的滚动行为。

基础滚动

#

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

在 YouTube 新标签页中观看:“Scrollbar | Flutter 每周组件”

在 YouTube 新标签页中观看:“ListView | Flutter 每周组件”

无限滚动

#

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

专用滚动组件

#

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

关于使用 DraggableScrollableSheet 的视频

在 YouTube 新标签页中观看:“DraggableScrollableSheet | Flutter 每周组件”

使用 ListWheelScrollView 将可滚动区域变成一个滚轮!

在 YouTube 新标签页中观看:“ListWheelScrollView | Flutter 每周组件”

高级滚动效果

#

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

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

有关更多信息,请查看使用 slivers 实现高级滚动以及 Sliver 类

嵌套滚动组件

#

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

观看“ShrinkWrap 与 Slivers”视频

在 YouTube 新标签页中观看:“ShrinkWrap vs Slivers | 解码 Flutter”