A flutter list that allows scrolling to a specific item in the list.

Also allows determining what items are currently visible.


A ScrollablePositionedList works much like the builder version of ListView except that the list can be scrolled or jumped to a specific item.


A ScrollablePositionedList can be created with:

final ItemScrollController itemScrollController = ItemScrollController();
final ItemPositionsListener itemPositionsListener = ItemPositionsListener.create();

  itemCount: 500,
  itemBuilder: (context, index) => Text('Item $index'),
  itemScrollController: itemScrollController,
  itemPositionsListener: itemPositionsListener,

One then can scroll to a particular item with:

  index: 150,
  duration: Duration(seconds: 2),
  curve: Curves.easeInOutCubic);

or jump to a particular item with:

itemScrollController.jumpTo(index: 150);

One can monitor what items are visible on screen with:

itemPositionsListener.itemPositions.addListener(() => ...);

A full example can be found in the example folder.

This is not an officially supported Google product.


View Github