| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| app-release.apk | 2026-10-03 | 82.5 MB | |
| README.md | 2026-10-03 | 6.4 kB | |
| v4.0.0 source code.tar.gz | 2026-10-03 | 2.1 MB | |
| v4.0.0 source code.zip | 2026-10-03 | 2.3 MB | |
| Totals: 4 Items | 86.8 MB | 0 | |
EasyRefresh v4.0.0 is now available on pub.dev.
Requirements and migration
- Flutter 3.47.0+ and Dart 3.13.0+ (Dart SDK constraint:
^3.13.0). - v4 uses
material_uiandcupertino_ui. Follow the updated README when migrating. - Apps that continue to use Flutter's existing
material.dartwidgets should stay oneasy_refresh: ^3.5.1.
Published packages
| Package | Version |
|---|---|
| easy_refresh | 4.0.0 |
| easy_paging | 4.0.0 |
| easy_refresh_bow | 2.0.0 |
| easy_refresh_bubbles | 2.0.0 |
| easy_refresh_halloween | 2.0.0 |
| easy_refresh_skating | 2.0.0 |
| easy_refresh_space | 2.0.0 |
| easy_refresh_squats | 2.0.0 |
Changes
Note: This release has breaking changes.
- BREAKING FEAT: migrate to material_ui and cupertino_ui for Flutter 3.47.
- BREAKING: Remove the unused pre-Flutter 3.32
kBezierSpringBuilderBelow3_32helper. - FEAT: Expose
strokeWidth,strokeAlign,strokeCap,elevation,indicatorMargin, andindicatorPaddingon MaterialHeader and MaterialFooter. - CHORE: Upgrade to material_ui 1.5.0 and cupertino_ui 1.1.1; use floating-point color alpha supported by Flutter 3.47.
- Requires Flutter >= 3.47 and Dart ^3.13.
- Built-in indicators resolve
Themeand localizations frompackage:material_ui/package:cupertino_ui. - Apps still using
package:flutter/material.dartshould stay oneasy_refresh: ^3.5.1. - FEAT: NestedScrollView-safe physics,
EasyRefresh.nested, andisNestedas nested-safe physics (not bouncing patches). - FIX: NestedScrollView retracts Header before collapsing the AppBar when pushing up, so releasing below trigger no longer starts a refresh.
- FIX: Completing refresh while the NestedScrollView AppBar is collapsed no longer flashes the AppBar background.
- FIX: Nested TabBarView Footer / callLoad bind the visible inner instead of the first attached tab (#735).
- FIX: Inner EasyRefresh auto-adopted into NestedScrollView keeps nested-safe state across parent rebuilds (#758).
- FIX: NestedScrollView ballistic
result/RenderBox.sizeasserts after refresh or load (#627, #652, #908). - FIX: NestedScrollView ClassicFooter remaining after load (#678).
- FIX: Page-level Nested refresh, per-tab Footer, and per-tab EasyRefresh isolation (#508, #725, #838).
- FIX:
EasyRefresh.builderpreserves Footer overscroll across keyboard-driven viewport changes (#890). - FIX: Remove unused
ValueNotifierwrappers from ballistic simulation state snapshots (#916). - FIX: Hide the opposite indicator while refresh/load tasks are mutually exclusive, while preserving non-clamping overscroll (#872).
- FIX: Stop carrying stale Footer rebound velocity after appended content expands the scroll extent (#831).
- FIX: Remove duplicate Cupertino indicator keys that could conflict during
AnimatedSwitchertransitions (#719). - FIX: Allow Header/Footer positions already beyond
maxOverOffsetto rebound toward the valid range without returning an invalid boundary delta (#650). - FEAT: Add
IndicatorTriggerMode.onEdgefor Header/Footer drag-start triggering while preserving the existinganywheredefault (#606). - Ship 3 package skills with complete examples and package-specific guidance.
- Update usage documentation and skill installation instructions.
- FIX: Resume Header/Footer rebound after a tap interrupts the closing animation (#913).
- FIX: Support secondary-page closing gestures and interrupted animations with NestedScrollView, including automatically detected nested positions (#853).
Try the example
- Online example
- Download the attached
app-release.apkfor Android (Android 7.0/API 24 or newer; arm64-v8a, armeabi-v7a, and x86_64). - Android example version:
4.0.0+2(--build-number=2; previous release usedversionCode=1). Built with Flutter 3.47.2 / Dart 3.13.2. - The APK uses the example's existing debug certificate and is intended for demonstrating the library.
- Web output includes local CanvasKit and Rive runtimes and uses relative paths for subdirectory deployment.
APK SHA-256:
:::text
3ba3cae1ab3b9d1bbd4f59e24e4581e881f3c1473f7a24d42cc399c7b0a04c5d app-release.apk
Validation
- Package CI passed on Flutter 3.47.0 and 3.47.3.
- All eight pub.dev versions were verified, and a separate consumer installed and tested the published packages.
- Release APK build, version, native architectures, ZIP integrity, and signature verification passed.
- Web Wasm and JavaScript builds were checked in a browser, including the Rive-based Bow example.