scroll_edge_listener 0.1.1 scroll_edge_listener: ^0.1.1 copied to clipboard
A widget triggers the attached listener based on the scroll position.
Needs to call some custom logic when the user reaches the end of the scroll? ScrollEdgeListener
is specifically designed to be used for implementing infinite scroll pagination with a lot of flexibility and cool semantics. Just set the listener
and offset
property and enjoy it.
Getting started #
edge #
The edge
property can be set to one of ScrollEdge.start
and ScrollEdge.end
. It determines on which side of the edge will call the listener
.
Defaults to ScrollEdge.end
.
edgeOffset #
The offset from the edge. Useful when you want to trigger the listener
before the user reaches the start or end of the scroll.
Defaults to 0.
continuous #
If true, the listener
will be continuously called if the scroll position is in the offset. If false, the listener
will only be called once it reaches the offset everytime.
Defaults to false.
debounce #
The debounce time for the listener
.
Defaults to Duration.zero
.
dispatch #
Determines whether it should propagate the notification event or not.
Defaults to true.
Usage #
This widget is designed to be used for implementing infinite scroll pagination. Set the offset
and call the listener
before the user reaches the end of the scroll and load the content ahead. The content will be loaded faster than it was because you loaded it before it reaches the end. Also, continuous
and debounce
prevents multiple calls in a short period of time.
ScrollEdgeListener(
edge: ScrollEdge.end,
edgeOffset: 400,
continuous: false,
debounce: const Duration(milliseconds: 500),
dispatch: true,
listener: () {
debugPrint('listener called');
},
child: ListView(
children: const [
Placeholder(),
Placeholder(),
Placeholder(),
Placeholder(),
],
),
),