PackageTrack
Sign in Get early access

navigator_resizable

A thin wrapper around Navigator that *visually* resizes the child navigator to match the size of the content displayed in the current route.

3.0.3 98K downloads/mo #1146 most downloaded on pub.dev fujidaiti/navigator_resizable

What this package is like to depend on

Last release 2 months ago

22 Jun 2026

Ships fairly regularly

a new release about every 3 months

Nearly every release is documented

notes for 8 of 8 stable releases

Nothing withdrawn

no release was ever pulled

2 years old

8 releases · first in 2025

4 releases in the last 12 months

see the full history below

Release timeline

8 releases · Jan 2025 to Jun 2026
2026
Release Pre-release

Releases

latest 8
  1. 3.0.3 22 Jun 2026
    Release notes

    What's Changed

    • Add missing @mustCallSupers ObservableRouteMixin by @fujidaiti in #41

    Full Changelog: v3.0.2...v3.0.3

    Open source →
    Release notes
    • Add missing @mustCallSupers to ObservableRouteMixin
    Open source →
  2. 3.0.2 05 Apr 2026
    Release notes

    What's Changed

    • chore(env): Update Flutter SDK from 3.41.2 to 3.41.4 [bot] by @norelease-bot[bot] in #26
    • chore(env): Update Flutter SDK from 3.41.4 to 3.41.5 [bot] by @norelease-bot[bot] in #28
    • chore(env): Update Flutter SDK from 3.41.5 to 3.41.6 [bot] by @norelease-bot[bot] in #29
    • Run code quality checks against only the latest supported SDK in CI by @fujidaiti in #31
    • Fix assertion error after performing predictive back gesture on Android by @fujidaiti in #30
    • Fix jaggy route pop animation with predictive back gesture on Android by @fujidaiti in #32
    • Migrate platform code of example app to latest Flutter SDK by @fujidaiti in #33
    • Bump to v3.0.2 by @fujidaiti in #34

    New Contributors

    • @norelease-bot[bot] made their first contribution in #26

    Full Changelog: v3.0.1...v3.0.2

    Open source →
    Release notes
    • Fix jaggy route pop animation with predictive back gesture on Android
    • Fix assertion error after performing predictive back gesture on Android
    Open source →
  3. 3.0.1 28 Feb 2026
    Release notes

    What's Changed

    • Add missing parameters to ResizablePageRoutePageBuilder by @fujidaiti in #21
    • Bump minimum Flutter SDK version to 3.35.1 by @fujidaiti in #22
    • Fix: NavigatorResizable size doesn't update when the current route is changed via Navigator.replace by @fujidaiti in #19

    Full Changelog: v3.0.0...v3.0.1

    Open source →
    Release notes
    • Add key, name, arguments, and restorationId parameters to ResizablePageRoutePageBuilder
    • Fix: NavigatorResizable size doesn't update when the current route is changed via Navigator.replace
    • Bump minimum Flutter SDK version to 3.35.1
    Open source →
  4. 3.0.0 01 Sep 2025
    Release notes

    What's Changed

    • Bump development Flutter SDK version to 3.35.1 by @fujidaiti in #10
    • Add minimal declarative example by @fujidaiti in #13
    • Add constraint assertion to prevent unbounded dimensions in NavigatorResizable by @fujidaiti in #15
    • Fix: assertion error when popping route in the middle of transition animation by @fujidaiti in #16

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

    Open source →
    Release notes
    • Fix: assertion error when popping route in the middle of transition animation (#16)
    • NavigatorResizable now asserts when provided with unbounded width or height constraints(#12).

    Breaking change in NavigatorResizable

    NavigatorResizable now requires bounded constraints on both axes. If its parent passes unbounded constraints (e.g., from Column or Row), an assertion will be thrown in debug mode. This helps catch cases where routes inside the underlying Navigator might otherwise receive infinite dimensions, which often surface when route content uses double.infinity for width/height to expand and fill the available space.

    Breaking change in NavigatorEventListener

    The signature of NavigatorEventListener.didStartTransition has been changed to handle edge cases where a transition is started in the middle of another transition, for example, when a route is pushed and immediately popped.

    BEFORE

    Previously, the route that is placed on top of the navigation stack before the transition starts is passed as the first argument of didStartTransition.

    void didStartTransition(
      Route<dynamic> currentRoute,
      Route<dynamic> nextRoute,
      Animation<double> animation, {
      bool isUserGestureInProgress = false,
    });
    

    AFTER

    In the new signature, the first argument currentRoute was removed, and the second argument was renamed to targetRoute. You can still keep track of the top-most route by capturing the route object reported by the NavigatorEventObserver.didEndTransition callback.

    void didStartTransition(
      Route<dynamic> targetRoute,
      Animation<double> animation, {
      bool isUserGestureInProgress = false,
    });
    
    Open source →
  5. 2.0.0 01 Jun 2025
    Release notes

    What's Changed

    Full Changelog: v1.0.2...v2.0.0

    Open source →
    Release notes
    • Updated minimum supported Flutter SDK to 3.29.0.
    • The invocation order of NavigatorEventListener callbacks has been changed to align with the behavior of the latest Flutter SDK.

    Background

    Flutter 3.29.0 introduced changes to the sequence of underlying navigator events, which may affect the invocation order of NavigatorEventListener callbacks.

    Breaking changes in NavigatorEventObserver

    The sequence in which NavigatorEventObserver invokes its NavigatorEventListener callback methods has been adjusted to align with the updated Flutter SDK. These changes do not affect the behavior of the NavigatorResizable widget itself.

    Zero-Duration Pop Transitions

    Zero-duration pop transitions occur when a route is popped with no animation duration (i.e., transitionDuration: Duration.zero), causing the transition to complete instantly without any visual animation. Previously, the didEndTransition(routeBelow) callback was invoked immediately after the didPopNext(routeBelow, poppedRoute) callback. Now, the didStartTransition(poppedRoute, routeBelow, ...) callback is invoked after didPopNext(...), and the didEndTransition(routeBelow) callback is invoked later after the transition has settled.

    Declarative Multi-Route Pushes

    Previously, when pushing multiple routes via a single state change (e.g., navigating from /A to /A/B/C), the didInstall(B) callback for intermediate routes was invoked early in the sequence alongside the primary transition events for route C. Now, the didInstall(B) callback for intermediate routes is invoked later in the sequence, after the primary transition has completed (i.e., after didEndTransition(C)).

    Open source →
  6. 1.0.2 11 Jan 2025
    Release notes

    What's Changed

    Full Changelog: v1.0.1...v1.0.2

    Open source →
    Release notes
    • Rename the ResizablePageBuilder to ResizablePageRoutePageBuilder, and the ResizablePageRoutePageBuilder to ResizablePageRouteBuilder.
    Open source →
  7. 1.0.1 11 Jan 2025
    Release notes

    What's Changed

    Full Changelog: https://github.com/fujidaiti/navigator_resizable/commits/v1.0.1

    Open source →
    Release notes
    • Fix broken links in the README.
    Open source →
  8. 1.0.0 11 Jan 2025
    Release notes
    • Initial release.
    Open source →

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