custom_refresh_indicator 0.2.1
custom_refresh_indicator: ^0.2.1 copied to clipboard
Flutter Widget that make it easy to implement custom refresh indicator.
Flutter Custom Refresh Indicator #
This package adds CustomRefreshIndicator widget that make it easy to implement your own custom refresh indicator.
Example use: #
CustomRefreshIndicator(
// Your custom indicator builder
indicatorBuilder: (context, data) => SimpleIndicatorContainer(
data: data,
child: SimpleIndicatorContent(data: data),
),
onRefresh: myAsyncRefreshMethod,
// Your child scroll widget
child: ListView.separated(
itemBuilder: (BuildContext context, int index) => const SizedBox(
height: 100,
),
separatorBuilder: (BuildContext context, int index) =>
const SizedBox(height: 20),
),
)
Working examples: #
Use of SimpleIndicatorContainer with Icon as child LINK #
[simple_indicator]
Envelope indicator #
[letter_indicator]
Getting started #
CustomRefreshIndicator #
CustomRefreshIndicator has an absolute minimum functionality that allows you to create and set your own custom indicators.
Arguments
| Argument | Type | Default value | Required |
|---|---|---|---|
| child | Widget |
none | true |
| onRefresh | Future<void> Function() |
none | true |
| indicatorBuilder | Widget Function(BuildContext, CustomRefreshIndicatorData) |
none | true |
| dragingToIdleDuration | Duration |
Duration(milliseconds: 300) |
false |
| armedToLoadingDuration | Duration |
Duration(milliseconds: 200) |
false |
| loadingToIdleDuration | Duration |
Duration(milliseconds: 100) |
false |
| leadingGlowVisible | bool |
false |
false |
| trailingGlowVisible | bool |
true |
false |
CustomRefreshIndicatorData #
Object containig data provided by CustomRefreshIndicator.
Props
| prop | type |
|---|---|
| value | double |
| direction | AxisDirection |
| scrollingDirection | ScrollDirection |
| indicatorState | CustomRefreshIndicatorState |
CustomRefreshIndicatorState #
Enum which describes state of CustomRefreshIndicator.
idle
CustomRefreshIndicator is idle (There is no action)
(CustomRefreshIndicatorData.value == 0)
draging
Whether user is draging CustomRefreshIndicator ending the scroll WILL NOT result in onRefresh call
(CustomRefreshIndicatorData.value < 1)
armed
CustomRefreshIndicator is armed ending the scroll WILL result in:
CustomRefreshIndicator.onRefreshcall- change of status to
loading - decreasing
CustomRefreshIndicatorData.valueto1in duration specified byCustomRefreshIndicator.armedToLoadingDuration)
(CustomRefreshIndicatorData.value >= 1)
hiding
CustomRefreshIndicator is hiding indicator when onRefresh future is resolved or indicator was canceled (scroll ended when [CustomRefreshIndicatorState] was equal to dragging so value was less than 1 or the user started scrolling through the list)
(CustomRefreshIndicatorData.value decreases to 0 in duration specified by CustomRefreshIndicator.dragingToIdleDuration)
loading
CustomRefreshIndicator is awaiting on onRefresh call result. When onRefresh will resolve CustomRefreshIndicator will change state from loading to hiding and decrease CustomRefreshIndicatorData.value from 1 to 0 in duration specified by CustomRefreshIndicator.loadingToIdleDuration
(CustomRefreshIndicatorData.value == 1)