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();
ScrollablePositionedList.builder(
itemCount: 500,
itemBuilder: (context, index) => Text('Item $index'),
itemScrollController: itemScrollController,
itemPositionsListener: itemPositionsListener,
);
One then can scroll to a particular item with:
itemScrollController.scrollTo(
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.positions.addListener((positions) => ...);
A full example can be found in the example folder.
This is not an officially supported Google product.