NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #1223 most downloaded on pub.dev
A thin wrapper around Navigator that *visually* resizes the child navigator to match the size of the content displayed in the current route.
Last release 1 months ago
31 Aug 2026
Ships fairly regularly
a new release about every 3 months
Nearly every release is documented
notes for 9 of 9 stable releases
Nothing withdrawn
no release was ever pulled
2 years old
9 releases · first in 2025
chore(env): Update Flutter SDK from 3.44.2 to 3.44.4 [bot] by @norelease-bot[bot] in #42
Full Changelog: v3.0.3...v3.1.0
One column per month.
Add missing @mustCallSuper s ObservableRouteMixin by @fujidaiti in #41
@mustCallSupers ObservableRouteMixin by @fujidaiti in #41Full Changelog: v3.0.2...v3.0.3
chore(env): Update Flutter SDK from 3.41.2 to 3.41.4 [bot] by @norelease-bot[bot] in #26
Full Changelog: v3.0.1...v3.0.2
Add missing parameters to ResizablePageRoutePageBuilder by @fujidaiti in #21
Full Changelog: v3.0.0...v3.0.1
key, name, arguments, and restorationId parameters to ResizablePageRoutePageBuilderNavigatorResizable size doesn't update when the current route is changed via Navigator.replaceBump development Flutter SDK version to 3.35.1 by @fujidaiti in #10
Full Changelog: v2.0.0...v3.0.0
NavigatorResizable now asserts when provided with unbounded width or height constraints(#12).NavigatorResizableNavigatorResizable 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.
NavigatorEventListenerThe 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,
});
Refine doc comments by @fujidaiti in #6
Full Changelog: v1.0.2...v2.0.0
3.29.0.NavigatorEventListener callbacks has been changed to align with the behavior of the latest Flutter SDK.Flutter 3.29.0 introduced changes to the sequence of underlying navigator events, which may affect the invocation order of NavigatorEventListener callbacks.
NavigatorEventObserverThe 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 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.
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)).
Fix incorrect class names by @fujidaiti in #5
ResizablePageBuilder to ResizablePageRoutePageBuilder, and the ResizablePageRoutePageBuilder to ResizablePageRouteBuilder.Initial version by @fujidaiti in #3
Full Changelog: https://github.com/fujidaiti/navigator_resizable/commits/v1.0.1
- Initial release.
Your coding agent can read these notes before it upgrades. Set up the MCP server →