PackageTrack
Sign in Get early access

custom_refresh_indicator

Widget that makes it easy to implement a custom pull to refresh gesture.

4.0.2 195K downloads/mo #859 most downloaded on pub.dev gonuit/flutter-custom-refresh-indicator

What this package is like to depend on

Last release 6 days ago

18 Aug 2026

Ships unpredictably

gaps range from 2 weeks to 2.1 years

Most releases are documented

notes for 22 of 28 stable releases

Nothing withdrawn

no release was ever pulled

7 years old

55 releases · first in 2019

1 release in the last 12 months

see the full history below

Release timeline

55 releases · Oct 2019 to Aug 2026
2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 55
  1. 4.0.2 18 Aug 2026
    Release notes
    • Removed usages of deprecated Flutter APIs. The minimum supported Dart and Flutter versions remain unchanged.
    Open source →
  2. 4.0.1 18 Jul 2024
    Release notes

    Changes:

    • Fixed missing changelog

    Full Changelog: v4.0.0...v4.0.1

    Open source →
    Release notes
    • CustomRefreshIndicator:
      • Removed deprecated parameters: indicatorCancelDuration, indicatorSettleDuration, indicatorFinalizeDuration and completeStateDuration .If you are still using them, switch to the duration parameter.
      • Improved handling of indicator controller changes.
      • Fixed missing dragDetails data when overscrolling.
    • IndicatorController:
      • Added minValue and maxValue static constants.
      • Added transform method. Allows you to transform controller animation values from the range 0.01.5 to another range.
      • Added normalize method. Normalizes value by converting it to the range 0.01.0. This allows the animation to be used directly with most Flutter widgets and tweens. You can still use clamp if you want to remove values above 1.0 instead of transforming the whole range.
    • CustomMaterialIndicator:
      • Redesigned/reimplemented. Now, when indicatorBuilder argument is not provided, it completely recreates the look and behavior of the built-in RefreshIndicator widget.
      • Added CustomMaterialIndicator.adaptive constructor.
      • indicatorBuilder parameter is now optional.
      • The deprecated parameter withRotation has been removed. It was confusing and was not related to the material indicator design. To add rotation to the indicator, you need to implement rotation yourself 😔.
      • Added color, semanticsValue, semanticsLabel and strokeWidth parameters. They are applied only when the default indicatorBuilder is used (given a null value).
    • Removed deprecated IndicatorBuilderDelegate and MaterialIndicatorDelegate classes.
    • Added TransformedAnimation class that allows transforming the parent animation value.
    • Exposed a PositionedIndicatorContainer widget that allows easy positioning of the indicator.
    • Example app:
      • Updated custom material indicator example.
      • Updated application design.
      • Added tooltips.
      • Added ball indicator example, which is an overview of the drag details based indicator.
      • Updated web example.
    Open source →
  3. 4.0.0 18 Jul 2024
    Release notes

    Changes:

    • CustomRefreshIndicator:
      • Removed deprecated parameters: indicatorCancelDuration, indicatorSettleDuration, indicatorFinalizeDuration and completeStateDuration .If you are still using them, switch to the duration parameter.
      • Improved handling of indicator controller changes.
      • Fixed missing dragDetails data when overscrolling.
    • IndicatorController:
      • Added minValue and maxValue static constants.
      • Added transform method. Allows you to transform controller animation values from the range 0.01.5 to another range.
      • Added normalize method. Normalizes value by converting it to the range 0.01.0. This allows the animation to be used directly with most Flutter widgets and tweens. You can still use clamp if you want to remove values above 1.0 instead of transforming the whole range.
    • CustomMaterialIndicator:
      • Redesigned/reimplemented. Now, when indicatorBuilder argument is not provided, it completely recreates the look and behavior of the built-in RefreshIndicator widget.
      • Added CustomMaterialIndicator.adaptive constructor.
      • indicatorBuilder parameter is now optional.
      • The deprecated parameter withRotation has been removed. It was confusing and was not related to the material indicator design. To add rotation to the indicator, you need to implement rotation yourself 😔.
      • Added color, semanticsValue, semanticsLabel and strokeWidth parameters. They are applied only when the default indicatorBuilder is used (given a null value).
    • Removed deprecated IndicatorBuilderDelegate and MaterialIndicatorDelegate classes.
    • Added TransformedAnimation class that allows transforming the parent animation value.
    • Exposed a PositionedIndicatorContainer widget that allows easy positioning of the indicator.
    • Example app:
      • Updated custom material indicator example.
      • Updated application design.
      • Added tooltips.
      • Added ball indicator example, which is an overview of the drag details based indicator.
      • Updated web example.

    Full Changelog: v3.1.2...v4.0.0

    Open source →
  4. 4.0.0-dev.3 18 Jul 2024 pre-release
    Release notes

    Changes:

    • CustomRefreshIndicator:
      • Removed deprecated parameters: indicatorCancelDuration, indicatorSettleDuration, indicatorFinalizeDuration and completeStateDuration .If you are still using them, switch to the duration parameter.
      • Improved handling of indicator controller changes.
      • Fixed missing dragDetails data when overscrolling.
    • IndicatorController:
      • Added minValue and maxValue static constants.
      • Added transform method. Allows you to transform controller animation values from the range 0.01.5 to another range.
      • Added normalize method. Normalizes value by converting it to the range 0.01.0. This allows the animation to be used directly with most Flutter widgets and tweens. You can still use clamp if you want to remove values above 1.0 instead of transforming the whole range.
    • CustomMaterialIndicator:
      • Redesigned/reimplemented. Now, when indicatorBuilder argument is not provided, it completely recreates the look and behavior of the built-in RefreshIndicator widget.
      • Added CustomMaterialIndicator.adaptive constructor.
      • indicatorBuilder parameter is now optional.
      • The deprecated parameter withRotation has been removed. It was confusing and was not related to the material indicator design. To add rotation to the indicator, you need to implement rotation yourself 😔.
      • Added color, semanticsValue, semanticsLabel and strokeWidth parameters. They are applied only when the default indicatorBuilder is used (given a null value).
    • Removed deprecated IndicatorBuilderDelegate and MaterialIndicatorDelegate classes.
    • Added TransformedAnimation class that allows transforming the parent animation value.
    • Exposed a PositionedIndicatorContainer widget that allows easy positioning of the indicator.
    • Example app:
      • Updated custom material indicator example.
      • Updated application design.
      • Added tooltips.
      • Added ball indicator example, which is an overview of the drag details based indicator.
      • Updated web example.

    Full Changelog: v4.0.0-dev.2...v4.0.0-dev.3

    Open source →
  5. 4.0.0-dev.2 12 Jul 2024 pre-release
    Release notes

    Changes:

    • CustomRefreshIndicator:
      • Removed deprecated parameters: indicatorCancelDuration, indicatorSettleDuration, indicatorFinalizeDuration and completeStateDuration .If you are still using them, switch to the duration parameter.
      • Improved handling of indicator controller changes.
      • Fixed missing dragDetails data when overscrolling.
    • IndicatorController:
      • Added minValue and maxValue static constants.
      • Added transform method. Allows you to transform controller animation values from the range 0.01.5 to another range.
      • Added normalize method. Normalizes value by converting it to the range 0.01.0. This allows the animation to be used directly with most Flutter widgets and tweens. You can still use clamp if you want to remove values above 1.0 instead of transforming the whole range.
    • CustomMaterialIndicator:
      • Redesigned/reimplemented. Now, when indicatorBuilder argument is not provided, it completely recreates the look and behavior of the built-in RefreshIndicator widget.
      • Added CustomMaterialIndicator.adaptive constructor.
      • indicatorBuilder parameter is now optional.
      • The deprecated parameter withRotation has been removed. It was confusing and was not related to the material indicator design. To add rotation to the indicator, you need to implement rotation yourself 😔.
      • Added color, semanticsValue, semanticsLabel and strokeWidth parameters. They are applied only when the default indicatorBuilder is used (given a null value).
    • Removed deprecated IndicatorBuilderDelegate and MaterialIndicatorDelegate classes.
    • Added TransformedAnimation class that allows transforming the parent animation value.
    • Exposed a PositionedIndicatorContainer widget that allows easy positioning of the indicator.
    • Example app:
      • Updated custom material indicator example.
      • Updated application design.
      • Added tooltips.
      • Added ball indicator example, which is an overview of the drag details based indicator.
      • Updated web example.

    Full Changelog: v4.0.0-dev.1...v4.0.0-dev.2

    Open source →
  6. 4.0.0-dev.1 06 Jul 2024 pre-release
    Release notes

    Changes:

    • CustomRefreshIndicator:
      • Removed deprecated parameters: indicatorCancelDuration, indicatorSettleDuration, indicatorFinalizeDuration and completeStateDuration .If you are still using them, switch to the duration parameter.
    • IndicatorController:
      • Added minValue and maxValue static constants.
      • Added transform method. Allows you to transform controller animation values from the range 0.01.5 to another range.
      • Added normalize method. Normalizes value by converting it to the range 0.01.0. This allows the animation to be used directly with most Flutter widgets and tweens. You can still use clamp if you want to remove values above 1.0 instead of transforming the whole range.
    • CustomMaterialIndicator:
      • Redesigned/reimplemented. Now, when indicatorBuilder argument is not provided, it completely recreates the look and behavior of the built-in RefreshIndicator widget.
      • Added CustomMaterialIndicator.adaptive constructor.
      • indicatorBuilder parameter is now optional.
      • The deprecated parameter withRotation has been removed. It was confusing and was not related to the material indicator design. To add rotation to the indicator, you need to implement rotation yourself 😔.
      • Added color, semanticsValue, semanticsLabel and strokeWidth parameters. They are applied only when the default indicatorBuilder is used (given a null value).
    • Removed deprecated IndicatorBuilderDelegate and MaterialIndicatorDelegate classes.
    • Added TransformedAnimation class that allows transforming the parent animation value.
    • Example app:
      • Updated custom material indicator example.

    Full Changelog: v3.1.1...v4.0.0-dev.1

    Open source →
  7. 3.1.2 12 Jul 2024
    Release notes

    Changes

    • Deprecated the withRotation argument of the CustomMaterialIndicator widget. The rotation function will be removed in the upcoming version.
    • Fixed missing drag detail (IndicatorController.dragDetails) information from scroll events.

    Full Changelog: v3.1.1...v3.1.2

    Open source →
    Release notes
    • Deprecated the withRotation argument of the CustomMaterialIndicator widget. The rotation function will be removed in the upcoming version.
    • Fixed missing drag detail (IndicatorController.dragDetails) information from scroll events.
    Open source →
  8. 3.1.1 05 Jul 2024
    Release notes

    Changes:

    • Fix:
      • Fixed durations parameter of CustomRefreshIndicator widget. Reported by @jccd1996 in #58.

    Full Changelog: v3.0.0...v3.1.1

    Open source →
    Release notes
    • Fix:
      • Fixed durations parameter of CustomRefreshIndicator widget. Reported by @jccd1996 in #58.
    Open source →
  9. 3.1.0 23 Mar 2024
    Release notes
    • Experimental:
      • Added ClampingWithOverscrollPhysics scroll physics, that together with indicator controller allows handling overscroll correctly.
    • The indicator's cancel duration is now based on the dragging progress.
    • Updated the the dart sdk constraints to >=2.17.0 <4.0.0
    Open source →
  10. 3.1.0-dev.1 05 Jan 2024 pre-release
    Release notes

    Changes:

    • Experimental:
      • Added ClampingWithOverscrollPhysics scroll physics, that together with indicator controller allows handling overscroll correctly.
    • The indicator's cancel duration is now based on the dragging progress.
    • Updated the dart sdk constraints to >=2.17.0 <4.0.0
    • Updated example app native dependencies

    Full Changelog: v3.0.0...v3.1.0-dev.1

    Open source →
  11. 3.0.0 06 Nov 2023
    Release notes

    Changes:

    • CustomRefreshIndicator:
      • Deprecated indicatorFinalizeDuration, indicatorSettleDuration, indicatorCancelDuration and completeStateDuration parameters in favor of durations.
      • The indicator widget will now be rebuilt every time state changes, even if the autoRebuilt parameter is set to false. This will make managing the state of the indicator widget simpler.
      • Deprecated IndicatorDelegate and MaterialIndicatorDelegate in favor of CustomMaterialIndicator widget.
    • IndicatorController:
      • The controller now extends Animation. This allows it to be used directly with Transition widgets to further improve animation performance.
      • New ClampedAnimation class for constraining the IndicatorController animation value within a specific range using the clamp method.
      • Drag interaction details are now available, enabling pointer-position-based animations.
    • Example app:
      • The checkmark indicator example has been simplified.
      • Minor corrections to the envelope indicator.
      • Added image precaching.
      • Removed unused code.

    Full Changelog: v2.2.1...v3.0.0

    Open source →
    Release notes
    • CustomRefreshIndicator:
      • Deprecated indicatorFinalizeDuration, indicatorSettleDuration, indicatorCancelDuration and completeStateDuration parameters in favor of durations.
      • The indicator widget will now be rebuilt every time state changes, even if the autoRebuilt parameter is set to false. This will make managing the state of the indicator widget simpler.
      • Deprecated IndicatorDelegate and MaterialIndicatorDelegate in favor of CustomMaterialIndicator widget.
    • IndicatorController:
      • The controller now extends Animation<double>. This allows it to be used directly with Transition widgets to further improve animation performance.
      • New ClampedAnimation class for constraining the IndicatorController animation value within a specific range using the clamp method.
      • Drag interaction details are now available, enabling pointer-position-based animations.
    • Example app:
      • The checkmark indicator example has been simplified.
      • Minor corrections to the envelope indicator.
      • Added image precaching.
      • Removed unused code.
    Open source →
  12. 3.0.0-beta.3 06 Nov 2023 pre-release

    Nothing published for this version

  13. 3.0.0-beta.2 04 Nov 2023 pre-release

    Nothing published for this version

  14. 3.0.0-beta.1 04 Nov 2023 pre-release

    Nothing published for this version

  15. 2.2.1 13 Jun 2023
    Release notes
    • Fixed typos in documentation
    Open source →
  16. 2.2.0 13 Jun 2023
    Release notes
    • Added clipBehavior and the elevation arguments of the MaterialIndicatorDelegate class.
    Open source →
  17. 2.1.0 13 Jun 2023
    Release notes
    • Updated the dart sdk constraints
    Open source →
  18. 2.0.1 04 Nov 2022
    Release notes
    • Added missing isCanceling and isSettling getters for IndicatorState and IndicatorController enum.
    Open source →
  19. 2.0.0 25 Oct 2022

    Nothing published for this version

  20. 2.0.0-dev.12 25 Oct 2022 pre-release

    Nothing published for this version

  21. 2.0.0-dev.11 25 Oct 2022 pre-release

    Nothing published for this version

  22. 2.0.0-dev.10 25 Oct 2022 pre-release

    Nothing published for this version

  23. 2.0.0-dev.9 25 Oct 2022 pre-release

    Nothing published for this version

  24. 2.0.0-dev.8 25 Oct 2022 pre-release

    Nothing published for this version

  25. 2.0.0-dev.7 24 Oct 2022 pre-release

    Nothing published for this version

  26. 2.0.0-dev.6 24 Oct 2022 pre-release

    Nothing published for this version

  27. 2.0.0-dev.5 24 Oct 2022 pre-release

    Nothing published for this version

  28. 2.0.0-dev.4 22 Oct 2022 pre-release

    Nothing published for this version

  29. 2.0.0-dev.3 21 Oct 2022 pre-release

    Nothing published for this version

  30. 2.0.0-dev.2 30 Sep 2022 pre-release

    Nothing published for this version

  31. 2.0.0-dev.1 29 Sep 2022 pre-release

    Nothing published for this version

  32. 2.0.0-beta.1 24 Oct 2022 pre-release

    Nothing published for this version

  33. 1.2.1 14 Jun 2022
    Release notes
    • Flutter 3.0.0 migration backward compatibility fix (#31) by Jordan1122
    Open source →
  34. 1.2.0 03 Jun 2022
    Release notes

    Improvements:

    • Compatibility improvements for Flutter 3.0.
    Open source →
  35. 1.1.2 03 Jun 2022
    Release notes

    Fixes:

    • Fixed assertion issue reported and resolved by ziqq in #29. For more information, please take a look at the following issue #28
    Open source →
  36. 1.1.1 02 Apr 2022
    Release notes

    Fixes:

    • Pub.dev readme file fix.
    • Fix code formatting issues
    Open source →
  37. 1.1.0 02 Apr 2022
    Release notes

    Fixes:

    • Handle errors thrown from the onRefresh method.

    Improvements:

    • Updated example app
      • Added support for the Android embedding v2
      • Added web support
      • Added windows support.
    • Added a web based demo app (url in the readme file).
    • Replaced the deprecated disallowGlow method calls with disallowIndicator.
    • Added onStateChanged function argument that allows tracking indicator state changes.
    • The IndicatorStateHelper class is now deprecated in favor of onStateChange function and IndicatorStateChange class.
    • Initial support for programmatically-controlled indicators has been added. Added the show, hide and refresh methods to the CustomRefreshIndicatorState class. It can be accessed via GlobalKey. Take a look at an programmatically-controlled screen example.
    • Use the flutter_lints package for analysis.
    • Deprecate leadingGlowVisible and trailingGlowVisible in favor of leadingScrollIndicatorVisible and trailingScrollIndicatorVisible arguments.
    • Added reversed argument that allows you to trigger a refresh indicator from the end of the list.
    • Added envelope example.
    • Added pull to fetch more example.
    Open source →
  38. 1.1.0+1 02 Apr 2022

    Nothing published for this version

  39. 1.1.0+2 02 Apr 2022

    Nothing published for this version

  40. 1.1.0-dev.3 02 Apr 2022 pre-release

    Nothing published for this version

  41. 1.1.0-dev.2 02 Apr 2022 pre-release

    Nothing published for this version

  42. 1.1.0-dev.1 31 Mar 2022 pre-release

    Nothing published for this version

  43. 1.0.0 24 May 2021
    Release notes
    • Stable nullsafety release.
    • BREAKING: opt into null safety
      • Dart SDK constraints: >=2.12.0-0 <3.0.0
    • BREAKING: Removed prevState from IndicatorController class. Because flutter only marks the widget that it is ready for rebuild, it is possible that the controller state will change more than once during a single frame what causes one or more steps to be skipped. To still use prevState and didChangeState method, you can use IndicatorStateHelper. Take a look at check_mark_indicator.dart or warp_indicator.dart for example usage.
    • Added IndicatorStateHelper class.
    • Added IndicatorController unit tests.
    • Added warp indicator example.
    • Added stopDrag method to the IndicatorController class. It allows you to stop current user drag.
    Open source →
  44. 1.0.0-nullsafety.1 22 Apr 2021 pre-release

    Nothing published for this version

  45. 1.0.0-nullsafety.0 23 Feb 2021 pre-release

    Nothing published for this version

  46. 0.9.0 01 Oct 2020
    Release notes
    • Improved readme documentation.
    • Removed material package import.
    Open source →
  47. 0.9.0-dev.2 21 Aug 2020 pre-release
    Release notes
    • Added isComplete and wasComplete controller getters.
    • Removed axis property as it can be handled by notificationPredicate.
    Open source →
  48. 0.9.0-dev.1 12 Aug 2020 pre-release
    Release notes
    • Added optional complete indicator state together with completeStateDuration parameter.
    • IndicatorController changes:
      • Added previousState property.
      • Added didStateChange helper method.
      • Added wasArmed, wasDragging, wasLoading, wasHiding and wasIdle properties.
    • Added notificationPredicate property to the CustomRefreshIndicator widget.
    • Example app:
      • Added initial version of check_mark_indicator. Example that shows how to make use of complete state.
    Open source →
  49. 0.8.0 11 Apr 2020

    Nothing published for this version

  50. 0.8.0+1 12 Apr 2020

    Nothing published for this version

  51. 0.2.1 07 Apr 2020
    Release notes
    • Upgrade example to AndroidX
    • Improved README
    Open source →
  52. 0.2.0 12 Nov 2019
    Release notes
    • Added support for BouncingScrollPhysics - ios default scroll physics
    • Improved readme
    Open source →
  53. 0.1.1 28 Oct 2019
    Release notes
    Open source →
  54. 0.1.0 28 Oct 2019
    Release notes
    • Added basic CustomRefreshIndicator widget with CustomRefreshIndicatorData class.
    • Added SimpleIndicatorContainer widget which simulate default RefreshIndicator container
    • Added examples:
      • inbox
      • simple
      • blur
    Open source →
  55. 0.0.1 28 Oct 2019

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive