scrollable_positioned_list_extended 0.3.9 scrollable_positioned_list_extended: ^0.3.9 copied to clipboard
scrollable_positioned_list with scroll_to_index features for smoother experience.
scrollable_positioned_list_extended #
A flutter list that allows scrolling to a specific item in the list.
Also allows determining what items are currently visible.
New ❇️ #
The package has recently got abilities of scroll_to_index. One can access AutoScrollController
, but with certain
limitations.
Note #
This is an extension of scrollable_positioned_list, which exposes helper methods like scrollToMax
extent, jumpToMax
extent and also scrollListener
to listen notifications which has not implemented in that yet.
Added Features #
scrollToMax
For scrolling to maximum extent.jumpToMax
For jumping to maximum extent.scrollToMin
For scrolling to minimum extent.jumpToMin
For jumping to minimum extent.scrollListener
For listeningScrollNotifications
like current offsetScrollPostition
here.- Access
AutoScrollController()
withItemScrollController.getAutoScrollController
. This method must be called after ensuringItemScrollController.isAttached == true
.
AutoScrollController? _autoScrollController;
...
if ( itemScrollController.isAttached ){
_autoScrollController = itemScrollController.getAutoScrollController;
}
...
Usage #
A ScrollablePositionedList
works much like the builder version of ListView
except that the list can be scrolled or jumped to a specific item.
Example #
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.itemPositions.addListener(() => ...);
One can listen to scrollNotifications of primary ScrollController
itemScrollController.scrollListener(
(notification) {
debugPrint(notification.position.maxScrollExtent.toString());
/// do with notification
},
);
One can scroll to max
itemScrollController.scrollToMax(
duration: Duration(seconds: 2),
curve: Curves.easeInOutCubic);
or jump to maxExtent:
itemScrollController.jumpToMax();
One can scroll to min
itemScrollController.scrollToMin(
duration: Duration(seconds: 2),
curve: Curves.easeInOutCubic);
or jump to minExtent:
itemScrollController.jumpToMin();
limitations #
-
ItemScrollController.getAutoScrollController
doesn't works with below methods.highlight()
.cancelAllHighlights()
.jumpTo()
.
A full example can be found in the example folder.