Download Latest Version v4.0.0 source code.zip (2.3 MB) Google Add to Preferred Sources
Home / v4.0.0
Name Modified Size InfoDownloads / 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_ui and cupertino_ui. Follow the updated README when migrating.
  • Apps that continue to use Flutter's existing material.dart widgets should stay on easy_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_32 helper.
  • FEAT: Expose strokeWidth, strokeAlign, strokeCap, elevation, indicatorMargin, and indicatorPadding on 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 Theme and localizations from package:material_ui / package:cupertino_ui.
  • Apps still using package:flutter/material.dart should stay on easy_refresh: ^3.5.1.
  • FEAT: NestedScrollView-safe physics, EasyRefresh.nested, and isNested as 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.size asserts 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.builder preserves Footer overscroll across keyboard-driven viewport changes (#890).
  • FIX: Remove unused ValueNotifier wrappers 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 AnimatedSwitcher transitions (#719).
  • FIX: Allow Header/Footer positions already beyond maxOverOffset to rebound toward the valid range without returning an invalid boundary delta (#650).
  • FEAT: Add IndicatorTriggerMode.onEdge for Header/Footer drag-start triggering while preserving the existing anywhere default (#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.apk for 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 used versionCode=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.
Source: README.md, updated 2026-10-03