NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #695 most downloaded on pub.dev
A package that implements Pull-Down Button from iOS 14 in Flutter. Highly customizable.
Last release 2 years ago
no release in 18 months
Ships unpredictably
gaps range from 8 days to 9 months
Nearly every release is documented
notes for 25 of 25 stable releases
1 version withdrawn
withdrawn after publishing
4 years old
37 releases · first in 2022
Fix ScrollController related warnings (#58).
ScrollController related warnings (#58).Fix incorrect menu position inside of nested navigators (#54, #55). Thanks to @kekland.
One column per quarter.
Bump Flutter minimum supported version from 3.0 to 3.19.0.
CupertinoSystemText as it is the current default font family in Flutter's cupertino widgets.useRootNavigator to PullDownButton and showPullDownMenu (#49). Thanks to @gborges9.routeSettings to PullDownButton and showPullDownMenu (#53).isOpen helper getter to PullDownMenuButtonBuilder (#52). Thanks to @vizakenjack.PullDownMenuHeader.leadingBuilder to allow a more flexible creation of the header's leading widget (#50).Add animationAlignmentOverride to PullDownButton. _This feature is experimental and may be removed in the future versions._
animationAlignmentOverride to PullDownButton. This feature is experimental and may be removed in the future versions.PullDownButton.animationAlignmentOverride.Add scrollController to PullDownButton, PullDownMenu and showPullDownMenu to allow passing custom scroll controller (#31).
scrollController to PullDownButton, PullDownMenu and showPullDownMenu to allow passing custom scroll controller (#31).initialScrollOffset from PullDownButton, PullDownMenu and showPullDownMenu to allow more precise scroll controller customization using scrollController.Fix menu items being "stuck" in the highlighted mode in scrollable menus (partially #29).
Use correct image for PullDownMenuHeader in README.
PullDownMenuHeader in README.Deprecate PullDownMenuDivider and PullDownMenuDivider.wrapWithDivider. _Menu now inserts small dividers automatically._
PullDownMenuItem layout.PullDownMenuTitle layout.PullDownMenuActionsRow.PullDownMenuTitle.PullDownMenuDivider and PullDownMenuDivider.wrapWithDivider. Menu now inserts small dividers automatically.PullDownMenuRouteTheme.largeTextScaleWidth to PullDownMenuRouteTheme.accessibilityWidth.PullDownMenuHeader. Based on UIDocumentProperties from iOS 16.subtitle to PullDownMenuItem and PullDownMenuItem.selectable.PullDownMenuTitle.alignment to allow customizing alignment of PullDownMenuTitle.subtitleStyle, onHoverBackgroundColor, onPressedBackgroundColor, and onHoverTextColor to PullDownMenuItemTheme.dividerColor from PullDownMenuActionsRow.iconSize, checkmarkWeight, checkmarkSize from PullDownMenuItemTheme.onHoverColor from PullDownMenuItemTheme. Use onHoverBackgroundColor instead.onHoverTextStyle from PullDownMenuItemTheme. Use onHoverTextColor instead.beginShadow and endShadow from PullDownMenuRouteTheme. Use shadow instead.Update menu items layouts to support all options in iOS 16 "Large Text" accessibility menu.
PullDownMenuRouteTheme.largeTextScaleWidth to allow customizing the menu's "accessibility" width.Rename all nullable of(context) methods to maybeOf(context) to follow Flutter repo style.
of(context) methods to maybeOf(context) to follow Flutter repo style.PullDownButton.buttonAnchor to allow "anchoring" menu to specific button side (#22).PullDownButton.buttonAnchor. See Examples -> Advanced in the example app.Add precautions to menu position calculations for cases when PullDownButton.buttonBuilder's height is bigger than the screen height (#21).
Add precautions to menu position calculations for cases when PullDownButton.buttonBuilder's height is bigger than the screen height (#21).
Consider using showPullDownMenu if the end position calculated using those precautions is not what was desired.
Breaking: showPullDownMenu _position_ now requires Rect instead of RelativeRect.
showPullDownMenu position now requires Rect instead of RelativeRect.PullDownMenuItem.delayedTapHandler.PullDownButton.animationBuilder to allow customization of animation for PullDownButton.buttonBuilder when the pull-down menu is opening or closing.PullDownButton.animationBuilder. See Examples -> Advanced in the example app.PullDownMenuPosition.under and PullDownMenuPosition.above.
PullDownMenuPosition.automatic should be used instead (new default).buttonSize and menuPosition from showPullDownMenu.PullDownButton.applyOpacity and PullDownButtonTheme.applyOpacity.
To remove opacity animation from PullDownButton.buttonBuilder set PullDownButton.animationBuilder to null.PullDownButton.offset.Add "continuous swipe" support to menus (see demo) (#19, #18).
Add "continuous swipe" support to menus (see demo) (#19, #18).
Thanks to @iSa1vatore.
Update PullDownMenuItem.defaultTapHandler to work with PullDownMenu.
PullDownMenuItem.defaultTapHandler to work with PullDownMenu.PullDownMenu - a pull-down menu as a simple widget, with no animations or adding routes to the navigation stack (#17).Add PullDownMenuItem.tapHandler to allow customization of how PullDownMenuItem.onTap is handled (#16).
PullDownMenuItem.tapHandler to allow customization of how
PullDownMenuItem.onTap is handled (#16).PullDownMenuItem.tapHandler. See Examples -> Advanced in the example app.Nothing published for this version
Add clamped animation for menu animations, updated shadow animation.
PullDownMenuItemTheme.lerp using incorrect text styles for lerping.Add menu height transition and updated open animation curve (#14, #15).
Add menu height transition and updated open animation curve (#14, #15).
Thanks to @iSa1vatore.
Fix the PullDownMenuActionsRow items content not being centered.
PullDownMenuActionsRow items content not being centered.Update padding values for PullDownMenuItem.
PullDownMenuItem.PullDownMenuItemTheme defaults.PullDownMenuRouteTheme defaults.PullDownMenuItemsOrder - an ordering logic for PullDownButton and showPullDownMenu items.Fix PullDownMenuItem.itemTheme.textStyle being overridden by global PullDownButtonTheme.itemTheme.textStyle during text styles marge in PullDownMenuIt
PullDownMenuItem.itemTheme.textStyle being overridden by global PullDownButtonTheme.itemTheme.textStyle during text styles marge in PullDownMenuItem and PullDownMenuTitle if both are not null.Breaking: PullDownMenuEntry no longer extends StatelessWidget, it now extends Widget. This was done to allow StatefulWidgets to be used as PullDownMen
PullDownMenuEntry no longer extends StatelessWidget, it now extends Widget. This was done to allow StatefulWidgets to be used as PullDownMenuEntry (#11).PullDownMenuEntry no longer provides fields to override due to their redundancy.PullDownMenuTitle - minimum height to be equal to native variant.PullDownMenuDividerTheme and PullDownMenuRouteTheme.PullDownButton.buttonBuilder.PullDownMenuItem text style and icon color opacity when PullDownMenuItem.enabled is false.PullDownMenuItem and PullDownMenuTitle - merge default text styles with provided ones (via theme or widget parameters).showPullDownMenu - an alternative way to display menu (#12).Update menu to not use BackdropFilter for blur used in pull-down menu if menu's background color is fully opaque (#9).
BackdropFilter for blur used in pull-down menu if menu's background color is fully opaque (#9)._Please see README for detailed info about new sub-themes._
Please see README for detailed info about new sub-themes.
PullDownButtonTheme - all properties where split into 4 sub-themes:
PullDownMenuRouteTheme).PullDownMenuItem theme (PullDownMenuItemTheme).PullDownMenuDivider theme (PullDownMenuDividerTheme).PullDownMenuTitle theme (PullDownMenuTitleTheme).<details><summary>Migration</summary>
PullDownButtonTheme(
backgroundColor: colorScheme.surface,
dividerColor: colorScheme.outline,
largeDividerColor: colorScheme.outlineVariant,
destructiveColor: colorScheme.error,
textStyle: TextStyle(
color: colorScheme.onSurface,
),
titleStyle: TextStyle(
color: colorScheme.onSurface,
),
widthConfiguration: const PullDownMenuWidthConfiguration(280),
)
PullDownButtonTheme(
routeTheme: PullDownMenuRouteTheme(
backgroundColor: colorScheme.surface,
width: 280,
),
dividerTheme: PullDownMenuDividerTheme(
dividerColor: colorScheme.outline,
largeDividerColor: colorScheme.outlineVariant,
),
itemTheme: PullDownMenuItemTheme(
destructiveColor: colorScheme.error,
textStyle: TextStyle(
color: colorScheme.onSurface,
),
),
titleTheme: PullDownMenuTitleTheme(
style: TextStyle(
color: colorScheme.onSurface,
),
),
)
</details>
PullDownMenuRouteTheme (#8).SelectablePullDownMenuItem with PullDownMenuItem.selectable.PullDownMenuIconAction - PullDownMenuActionsRow now uses PullDownMenuItem.PullDownMenuWidthConfiguration - use PullDownMenuRouteTheme.width.Fix incorrect padding values for RTL (#7).
Add PullDownMenuActionsRow - displays multiple actions in a row (from iOS 16).
PullDownMenuActionsRow - displays multiple actions in a row (from iOS 16).Breaking: update PullDownMenuDivider's constructors - deprecate (removed any usages) dividerColor and largeDividerColor from PullDownMenuDivider and P…
PullDownMenuDivider's constructors - deprecate (removed any usages) dividerColor and largeDividerColor from PullDownMenuDivider and PullDownMenuDivider.large respectively. Both constructors now use same color property.PullDownMenuPosition of PullDownButton is now under since this behaviour is the most frequent across iOS system apps.automatic (#5):
over - will attempt to fill as much space as possible.under - is forced to be under an anchor. If there is no available space, will be placed above an anchor.above - is forced to be above an anchor. If there is no available space, will be placed under an anchor.automatic - is positioned under or above an anchor depending on side that has more space available.PullDownMenuDivider.wrapWithDivider.Nothing published for this version
Add onHoverTextStyle to PullDownButtonTheme (#6).
onHoverTextStyle to PullDownButtonTheme (#6).Add support for mouse pointers for PullDownMenuItem.
PullDownMenuItem.onHoverColor to PullDownButtonTheme (#6).Add ability to choose to whether apply opacity on menu open for PullDownButton.buttonBuilder or not (#4).
PullDownButton.buttonBuilder or not (#4).Add PullDownMenuWidthConfiguration to allow customizing pull-down menu's width (#3).
PullDownMenuWidthConfiguration to allow customizing pull-down menu's width (#3).Nothing published for this version
Replace SizedBox with ConstrainedBox in PullDownMenuTitle to allow PullDownMenuTitle to have adaptive height.
SizedBox with ConstrainedBox in PullDownMenuTitle to allow PullDownMenuTitle to have adaptive height.largeDividerColor in PullDownButtonThemeDefaults to more correct value.iconColor and iconWidget parameters to PullDownMenuItem and SelectablePullDownMenuItem.showDialog (and other actions that change navigation stack) to work directly without any workarounds (#1):<details><summary>Migration</summary>
Instead of
onTap: () async {
await Future<void>.delayed(const Duration(milliseconds: 1));
await showDialog<void>(
context: context,
builder: (context) => ...,
);
},
Now is possible to write it like this:
onTap: () => showDialog<void>(
context: context,
builder: (context) => ...,
),
</details>
Add PullDownButtonInheritedTheme as an additional way of defining global PullDownButtonTheme (#2).
PullDownButtonInheritedTheme as an additional way of defining global PullDownButtonTheme (#2).Update pull-down menu show/hide animations to be more similar to native version.
PullDownMenuPosition.above.###### 2022-05-25 - Initial release
Your coding agent can read these notes before it upgrades. Set up the MCP server →