13.ListView滑动到指定位置

前言

在进行列表视图的开发场景中,通过索引快速滑动到指定 section 是常见的功能。那么在 flutter 中我们该如何实现这种功能呢? 本文就将以联系人页面为例进行讲解。

2

分析ListView

在 iOS 开发中我们常使用 open func scrollToItem(at indexPath: IndexPath, at scrollPosition: UICollectionView.ScrollPosition, animated: Bool) 这类方法来实现 CollectionView 和 TableView 下的滚动到指定位置的效果。

但 flutter 的 ListView 并不含有这种分组的概念,也没有提供这种便利的方法,但是有基础API可以为我们提供一些思路。

ScrollController

我们可以在为 ListView 绑定一个 ScrollController ,它的作用可以理解为我们进行 iOS 开发中的 相关代理,但是他的作用会更富一些。

1

为来滚动到指定位置,这里提供了两个 API,更具体的说明可以点进头文件查看注释,这里就不再赘述。

animateTo

有动画

jumpTo

无动画

这里为了实现通讯录滑动到组头部的效果,选择使用 jumpTo

提前计算好每组的偏移量

IndexBar的事件处理

项目完整代码

GitHub

Last updated

Was this helpful?