Skip to content

Releases: gonuit/flutter-custom-refresh-indicator

v1.1.2

03 Jun 15:20
Compare
Choose a tag to compare

Changes:

  • Fixed assertion issue reported and resolved by ziqq in #29.
    For more information, please take a look at the following issue #28

v1.1.0

02 Apr 16:02
c9a063c
Compare
Choose a tag to compare

Changes

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.

v1.1.0-dev.3

02 Apr 14:04
Compare
Choose a tag to compare
v1.1.0-dev.3 Pre-release
Pre-release

Changes:

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.

v1.1.0-dev.2

02 Apr 13:42
Compare
Choose a tag to compare
v1.1.0-dev.2 Pre-release
Pre-release

Changes

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.

v1.1.0-dev.1

31 Mar 15:41
Compare
Choose a tag to compare
v1.1.0-dev.1 Pre-release
Pre-release

Changes:

  • 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.

v1.0.0

31 Mar 15:42
87a1581
Compare
Choose a tag to compare
  • 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.

v1.0.0-nullsafety.1

22 Apr 20:47
Compare
Choose a tag to compare
v1.0.0-nullsafety.1 Pre-release
Pre-release

Changes:

  • Stable nullsafety release.
  • 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.

v1.0.0-nullsafety.0

23 Feb 23:45
Compare
Choose a tag to compare
v1.0.0-nullsafety.0 Pre-release
Pre-release

Changes

  • opt into null safety
  • set Dart SDK constraints to: >=2.12.0-0 <3.0.0
  • removed emoji indicator from the example app

v0.9.0

01 Oct 22:11
20a2d95
Compare
Choose a tag to compare

Changes:

  • Improved readme documentation.
  • Removed material package import.
  • Added isComplete and wasComplete controller getters.
  • Removed axis property as it can be handled by notificationPredicate.
  • Added optional complete indicator state together with completeStateDuration parameter.
  • IndicatorControler changes:
    • Added prevoiusState 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.

CustomRefreshIndicator widget controller

11 Apr 23:18
Compare
Choose a tag to compare

BREAKING API CHANGES

  • Feedback improvements (thank you for your emails!):
    • Changed long identifier names:
      • CustomRefreshIndicatorData => IndicatorController
      • CustomRefreshIndicatorState => IndicatorState
  • Update example app
  • indicatorBuilder argument is no longer present. Instead use builder argument which has some significant changes.

To animate indicator based on IndicatorControler you can use AnimationBuilder widget and pass IndicatorData object as animation argument. Because of that you can implement your own widget rebuild system what can improve your custom indicator performance (instead of building indicator eg. 300 times you can decide when you want to do it). Example:

return CustomRefreshIndicator(
    child: ListView(children: <Widget>[/* ... */]),
    builder: (
      BuildContext context,
      /// Subtree that contains scrollable widget and was passed
      /// to child argument
      Widget child,
      /// Now all your data will be stored in controller.
      /// To get controller outside of this function
      /// 1. Create controller in parent widget and pass it to CustomRefreshIndicator
      /// 2. Assign [GlobalKey] to CustomRefreshIndicator and access `key.currentState.controller`.
      IndicatorController controller
    ) {
      return AnimatedBuilder(
        // IndicatorData extends ChangeNotifier class so it is possible to
        // assign it to an AnimationBuilder widget and take advantage of subtree rebuild
        animation: controller,
        child: MyPrebuildWidget(),
        child: child,
        builder: (BuildContext context, Widget child) {
          /// TODO: Implement your custom refresh indicator
        },
      );
    },
    onRefresh: myAsyncMethod,
  );