- breaking: Flutter >=3.7.0, dart >=2.19.0. Remove some unnecessary compatibility, please update the Flutter version in time, or use the previous version.
- fix: Scroll bar adaptation for unknown platforms #825.
- feat: Add BoxDecoration to ClassicHeader and ClassicFooter, Thanks GiampaoloGabba for PR#822.
- fix: Compatible with Flutter3.22.0.
- fix: Indicator properties cannot be updated #818.
- fix: Material style performance optimization #814.
- fix: Issue during build when IndicatorStateListenable rebinds IndicatorNotifier #607.
- fix: EasyPaging.itemBuilder type inference #762.
- fix: Event notification after dispose #726.
- fix: Using refreshOnStart, onRefresh may not be triggered #789.
- fix: Using refreshOnStart, scrolling to the bottom when the Header is visible cannot trigger loading #787.
- fix: All styles are lost.
- feat: All kind of pointer device are supported by default #777.
- fix: Compatible with versions below Flutter3.10 #722.
- fix: BezierIndicator.spinBuilder doesn't work.
- feat: Add BezierIndicator.spinInCenter.
- feat: Add BezierIndicator.onlySpin #689.
- feat: Add support for ScrollPhysics.toleranceFor.
- feat: After failure, continue to scroll to trigger the task #718.
- feat: [EasyRefresh] noMoreRefresh -> canRefreshAfterNoMore, noMoreLoad -> canRefreshAfterLoad
- fix: Use canRefreshAfterNoMore or canRefreshAfterLoad, abnormal NoMore status.
- feat: EasyRefreshController.finishRefresh and EasyRefreshController.finishLoad add force parameter.
- feat: Add EasyRefresh.triggerAxis, specifies the direction of the trigger.
- fix: Increase the priority of ClassicIndicator.pullIconBuilder #674.
- fix: fit parameter is invalid #708.
- fix: Avoid an endless loop caused by multiple ListViews nested, Thanks LinXunFeng for PR#681.
- fix: FooterNotifier.callTask use callRefreshOverOffset, Thanks AWarmHug for PR#680.
- fix: NestedScrollView resize error #666.
- fix: Compatible with Flutter 3.7.
- fix: The indicator does not retract when the height of the list changes #618.
- fix: CupertinoActivityIndicator renamed to avoid conflicts.
- fix: Compatible with Flutter2.8.1 and below #619.
- perf: Pub scores.
- fix: Footer's maxOverOffset property does not work.
- fix: When maxOverOffset is 0, list scrolling loses inertia.
- fix: When there is no task, the mode still changes #608.
- fix: HapticFeedback does not work when triggerWhenReach is true.
- fix: When clamping, triggerWhenRelease is true causing the indicator to be stuck.
- feat: Material indicator support triggerWhenRelease.
- feat: EasyRefreshController add headerState, footerState #635.
- feat: Add triggerWhenRelease and triggerWhenReleaseNoWait #593.
- fix: Error when using NotLoadFooter with clamping. Thanks Pwuts for PR#659.
- feat: Add maxOverOffset #590.
- feat: Add paging widget [EasyPaging].
- fix: Clamping refresh, causing Material3 AppBar to change color.
- fix: [EasyRefreshController.callRefresh] and [EasyRefreshController.callLoad] add force #633 #642. Thanks percival888 for PR#639.
- fix: When the height changes when callTask causes the list not to rebound.
- feat: Add [EasyRefresh.scrollBehaviorBuilder] and [EasyRefresh.defaultScrollBehaviorBuilder]. Thanks laiiihz for PR#614.
- fix: Type 'SpringDescription' not found #638.
- feat: When the content of the list is not full, the infinite scroll does not cross the bounds #588.
- fix: [refreshOnStart] safe area #586.
- fix: [NestedScrollView.viewportDimension] should use outer's #582.
- fix: Notify UI to update when indicator property changes #582.
- fix: ScrollMetrics.minScrollExtent != 0.0, offset calculation error.
- feat: Supported [ScrollView.center] #581.
- docs: NestedScrollView example.
- fix: processedDuration == Duration.zero, can't rebound #572.
- fix: [clamping] may not have rebound animation.
- fix: Indicator overflow #575.
- fix: BezierCircleHeader drop overflow.
- feat: Supported NestedScrollView.
- feat: Supported ScrollController trigger events.
- fix: ClassicIndicator transition animation.
- fix: NotRefreshHeader and NotLoadFooter [position] causes tree structure changes.
- fix: [viewportDimension] changes may trigger loading.
- feat: Indicator add [triggerWhenReach] #348. Trigger immediately when reaching the [triggerOffset].
- feat: CupertinoIndicator support horizontal.
- fix: CupertinoActivityIndicator radius == 0.
- fix: Use notifyListeners after ChangeNotifier disposed. Thanks laiiihz for PR#555.
- feat: ClassicHeader、ClassicFooter add IconThemeData. Thanks Lay523 for PR#562.
- feat: ClassicIndicator add [progressIndicatorSize] and [progressIndicatorStrokeWidth].
- feat: Add CupertinoIndicator.
- fix: finishLoad asset #563.
- fix: dart >=2.13.0.
- fix: The screen is not full, [infinite] can not reset.
- feat: HeaderLocator and FooterLocator add [clearExtent].
- feat: Add OverrideFooter and OverrideHeader.
- fix: Scores
- fix: .pubignore
Framework rewrite, stronger refresh widget.
- Supports all scrollable widgets.
- Physics scope, no longer limited to child types.
- Adjustable scroll parameters, infinite possibilities for the indicator.
- Safe area support.
- Indicator position setting.