persistent_bottom_nav_bar
A highly customizable persistent/static bottom navigation bar for flutter. Includes up-to 20 styles.
6.2.1
12K downloads/mo
#2772 most downloaded on pub.dev
BilalShahid13/PersistentBottomNavBar
What this package is like to depend on
Last release 2 years ago
no release in 18 months
Ships unpredictably
gaps range from 8 days to 1.8 years
Nearly every release is documented
notes for 76 of 82 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
82 releases · first in 2020
0 releases in the last 12 months
see the full history below
Release timeline
82 releases · Jan 2020 to Jul 2024Releases
latest 60 of 82-
6.2.111 Jul 2024 -
6.2.011 Jul 2024Release notes
Open source →- Breaking Changes
- For
PersistentTabView.custom,List<Widget> screenshas been replaced withList<CustomNavBarScreen> screens. - Property
routeAndNavigatorSettingshas been removed fromPersistentTabView.custom. You now defineRouteAndNavigatorSettingsfor each screen separately inCustomNavBarScreen. Please refer to the Readme file for more instructions.
- For
Release notes
Open source →-
Breaking Changes
-
For PersistentTabView.custom , List<Widget> screens has been replaced with List<CustomNavBarScreen> screens .
-
Property routeAndNavigatorSettings has been removed from PersistentTabView.custom . You now define RouteAndNavigatorSettings for each screen separately in CustomNavBarScreen . Please refer to the Readme file for more instructions.
- Breaking Changes
-
6.1.111 Jul 2024 -
6.1.011 Jul 2024Release notes
Open source →- Fixed issue where class
CustomWidgetRouteAndNavigatorSettingswas unintentionally made private. - Breaking Changes
- To import the package, you will now have to use
import "package:persistent_bottom_nav_bar/persistent_bottom_nav_bar.dart";instead ofimport "package:persistent_bottom_nav_bar/persistent_tab_view.dart";.
- To import the package, you will now have to use
Release notes
Open source →-
Fixed issue where class CustomWidgetRouteAndNavigatorSettings was unintentionally made private.
-
Breaking Changes
-
To import the package, you will now have to use import "package:persistent_bottom_nav_bar/persistent_bottom_nav_bar.dart"; instead of import "package:persistent_bottom_nav_bar/persistent_tab_view.dart"; .
- Fixed issue where class
-
6.0.211 Jul 2024 -
6.0.111 Jul 2024Release notes
Open source →- Removed deprecated classes.
- Fixed unwanted trigger of
onWillPopwhen Android back button is pressed. - Fixed the bug where bar in
Style3andStyle4would not work correctly when margin was applied. - Fixed typos in Readme and Changelog.
- Updated example project to run on latest Android versions.
Release notes
Open source →-
Removed deprecated classes.
-
Fixed unwanted trigger of onWillPop when Android back button is pressed.
-
Fixed the bug where bar in Style3 and Style4 would not work correctly when margin was applied.
-
Fixed typos in Readme and Changelog.
-
Updated example project to run on latest Android versions.
-
6.0.011 Jul 2024Release notes
Open source →- There are many new features and some breaking changes introduced in this version. I will do my best to list all down here but I will still advise to check the example project to cover and see all of the changes for yourself.
- Breaking Changes
NavBarPaddingis replaced withEdgeInsetsin thepaddingproperty.itemAnimationPropertiesandscreenTransitionAnimationare now part of propertyanimationSettings.- Renamed
confineInSafeAreatoconfineToSafeArea. - Removed redundant properties
popAllScreensOnTapOfSelectedTabandpopAllScreensOnTapAnyTabs. Added new propertypopBehaviorOnSelectedNavBarItemPressto cover this behavior. - Property
hideNavigationBaris replaced withisVisible.
- New Features
- Updated maximum supported Flutter SDK version.
- Animated icons are now supported.
- Hiding of navigation bar on scroll down motion is now supported through property
hideOnScrollSettings. Hiding animation settings can be controlled fromanimationSettings. Please check the readme file and example project for better understanding. - You can now scroll to top on a scrollable screen when an already selected navigation bar tab is pressed. You will need to provide scroll controllers in both this and above mentioned functionality.
- New
fadeInanimation inscreenTransitionAnimation. - New function
popUntilFirstScreenOnSelectedTabScreenintroduced inPersistentNavBarNavigator. - If opacity is less than 1 in
PersistentBottomNavBarItemandboxShadowis appliedNavBarDecoration,backgroundColorwill be set to transparent to achieve partial transparent navigation bar effect like on Spotify Android.
- Bug Fixes
- Fixed null errors around
NavBarDecoration. - Removed jitter in animation when property
hideNavigationBarwas changed. - Fixed error -> The getter 'backgroundColor' isn't defined for the type 'ThemeData'.
- Fixed the issue where wrong animation state was shown when
initialIndexonPersistentTabControllerwas other than 0 instyle19. floatingActionButtonis now fixed above the screens instead of separate button for each screen.
- Fixed null errors around
Release notes
Open source →-
There are many new features and some breaking changes introduced in this version. I will do my best to list all down here but I will still advise to check the example project to cover and see all of the changes for yourself.
-
Breaking Changes
-
NavBarPadding is replaced with EdgeInsets in the padding property.
-
itemAnimationProperties and screenTransitionAnimation are now part of property animationSettings .
-
Renamed confineInSafeArea to confineToSafeArea .
-
Removed redundant properties popAllScreensOnTapOfSelectedTab and popAllScreensOnTapAnyTabs . Added new property popBehaviorOnSelectedNavBarItemPress to cover this behavior.
-
Property hideNavigationBar is replaced with isVisible .
-
New Features
-
Updated maximum supported Flutter SDK version.
-
Animated icons are now supported.
-
Hiding of navigation bar on scroll down motion is now supported through property hideOnScrollSettings . Hiding animation settings can be controlled from animationSettings . Please check the readme file and example project for better understanding.
-
You can now scroll to top on a scrollable screen when an already selected navigation bar tab is pressed. You will need to provide scroll controllers in both this and above mentioned functionality.
-
New fadeIn animation in screenTransitionAnimation .
-
New function popUntilFirstScreenOnSelectedTabScreen introduced in PersistentNavBarNavigator .
-
If opacity is less than 1 in PersistentBottomNavBarItem and boxShadow is applied NavBarDecoration , backgroundColor will be set to transparent to achieve partial transparent navigation bar effect like on Spotify Android.
-
Bug Fixes
-
Fixed null errors around NavBarDecoration .
-
Removed jitter in animation when property hideNavigationBar was changed.
-
Fixed error -> The getter 'backgroundColor' isn't defined for the type 'ThemeData'.
-
Fixed the issue where wrong animation state was shown when initialIndex on PersistentTabController was other than 0 in style19 .
-
floatingActionButton is now fixed above the screens instead of separate button for each screen.
-
5.0.216 Sep 2022 -
5.0.116 Sep 2022 -
5.0.016 Sep 2022Release notes
Open source →- Added style 19
- Fixed warnings introduced after Flutter 3.0
- Breaking Changes
- Navigator functions will now be called like
PersistentNavBarNavigator.pushNewScreen(...)instead ofpushNewScreen(..).
- Navigator functions will now be called like
Release notes
Open source →-
Added style 19
-
Fixed warnings introduced after Flutter 3.0
-
Breaking Changes
-
Navigator functions will now be called like PersistentNavBarNavigator.pushNewScreen(...) instead of pushNewScreen(..) .
-
4.0.227 Mar 2021Release notes
Open source →- Fixed error while pushing new screens through the included Navigator functions.
-
4.0.127 Mar 2021 -
4.0.021 Mar 2021 -
3.2.020 Mar 2021Release notes
Open source →inactiveIconis now available inPersistentBottomNavBarItem.- Fixed the bug where all screens of a tab would be popped while switching between tabs.
- Bug fixes.
- Breaking Changes
onWillPopfunction now will return the selected screen's context. PersistentBottomNavBarItemrouteAndNavigatorSettingshas been removed for non-custom navigation bar. Instead, you must now declarerouteAndNavigatorSettingsinPersistentBottomNavBarItem.activeColoris nowactiveColorPrimary.inactiveColoris nowinactiveColorPrimary.activeColorAlternateis nowactiveColorSecondary.onPressednow returns context of the selected screen.
Release notes
Open source →-
inactiveIcon is now available in PersistentBottomNavBarItem .
-
Fixed the bug where all screens of a tab would be popped while switching between tabs.
-
Bug fixes.
-
Breaking Changes
-
onWillPop function now will return the selected screen's context. PersistentBottomNavBarItem
-
routeAndNavigatorSettings has been removed for non-custom navigation bar. Instead, you must now declare routeAndNavigatorSettings in PersistentBottomNavBarItem .
-
activeColor is now activeColorPrimary .
-
inactiveColor is now inactiveColorPrimary .
-
activeColorAlternate is now activeColorSecondary .
-
onPressed now returns context of the selected screen.
-
3.1.006 Dec 2020Release notes
Open source →- Argument
routeAndNavigatorSettingsadded to handleNavigator.pushNamed(context, 'routeName'). Please define your routes and other navigator settings like navigator observers here as well. - Breaking Changes
- Arguments
initalRoute,navigatorObserversandnavigatorKeysremoved and shifted torouteAndNavigatorSettings.
- Arguments
Release notes
Open source →-
Argument routeAndNavigatorSettings added to handle Navigator.pushNamed(context, 'routeName') . Please define your routes and other navigator settings like navigator observers here as well.
-
Breaking Changes
-
Arguments initalRoute , navigatorObservers and navigatorKeys removed and shifted to routeAndNavigatorSettings .
- Argument
-
3.0.006 Dec 2020Release notes
Open source →- Added new arguments
navigatorObserversandnavigatorKeysfor the main navigation bar widget. - No need to call
setStatewhen updating active tab using the PersistentTabController. - Function argument
selectedTabScreenContextexposescontextof the selected tab. - Bug fixes and code refactoring.
- Breaking Changes
contextis now required in the constructor.- For custom widget, use this constructor
PersistentTabView.custom(). NavBarStyle.customhas been removed. Please usePersistentTabView.custom().- Argument
iconSizehas been shifted to PersistentBottomNavBarItem. - PersistentBottomNavBarItem argument
activeContentColor's name has been changed toactiveColorSecondary. Functionality remains the same. - PersistentBottomNavBarItem argument
titleStyle's name has been changed totextStyle. Functionality remains the same.
Release notes
Open source →-
Added new arguments navigatorObservers and navigatorKeys for the main navigation bar widget.
-
No need to call setState when updating active tab using the PersistentTabController.
-
Function argument selectedTabScreenContext exposes context of the selected tab.
-
Bug fixes and code refactoring.
-
Breaking Changes
-
context is now required in the constructor.
-
For custom widget, use this constructor PersistentTabView.custom() .
-
NavBarStyle.custom has been removed. Please use PersistentTabView.custom() .
-
Argument iconSize has been shifted to PersistentBottomNavBarItem.
-
PersistentBottomNavBarItem argument activeContentColor 's name has been changed to activeColorSecondary . Functionality remains the same.
-
PersistentBottomNavBarItem argument titleStyle 's name has been changed to textStyle . Functionality remains the same.
- Added new arguments
-
2.1.002 Oct 2020Release notes
Open source →- Added
TextStyleproperty for title in the PersistentBottomNavBarItem. - Added
marginproperty for the navigation bar. - Bug fixes.
Release notes
Open source →-
Added TextStyle property for title in the PersistentBottomNavBarItem.
-
Added margin property for the navigation bar.
-
Bug fixes.
- Added
-
2.0.516 Jul 2020 -
2.0.416 Jul 2020 -
2.0.316 Jul 2020 -
2.0.215 Jul 2020 -
2.0.115 Jul 2020 -
2.0.015 Jul 2020Release notes
Open source →These are not all the changes introduced in this update. Only the major ones. They were simply too many and couldn't be listed down here
- Added transition animations to the Navigator functions.
- Padding simplified into a single property and uses
NavBarPaddinginstead of EdgeInsets. - New property called 'decoration' where are decoration related properties have been moved like curveRadius, boxShadow etc.
- New property to hide the Navigation Bar when keyboard appears.
- For those wanting to display a custom dialog when user tries to exit the app on Android only, use
onWillPopthe callback function. - 8 new styles added.
- Animation properties for all styles can now be controlled through the property
itemAnimationProperties. - Ability to turn off state management.
- Screen transition animation added. Can be controlled with the property
screenTransitionAnimation. - Ability to use custom behavior on tapping of a navigation bar's tab/item through
onPressedcallback method in thePersistentBottomNavBarItem. - Removed
platformSpecificproperty from Navigator functions to make it compatible with Flutter-Web. - Minor new features, bug fixes and stability improvements.
Release notes
Open source →These are not all the changes introduced in this update. Only the major ones. They were simply too many and couldn't be listed down here
-
Added transition animations to the Navigator functions.
-
Padding simplified into a single property and uses NavBarPadding instead of EdgeInsets.
-
New property called 'decoration' where are decoration related properties have been moved like curveRadius, boxShadow etc.
-
New property to hide the Navigation Bar when keyboard appears.
-
For those wanting to display a custom dialog when user tries to exit the app on Android only , use onWillPop the callback function.
-
8 new styles added.
-
Animation properties for all styles can now be controlled through the property itemAnimationProperties .
-
Ability to turn off state management.
-
Screen transition animation added. Can be controlled with the property screenTransitionAnimation .
-
Ability to use custom behavior on tapping of a navigation bar's tab/item through onPressed callback method in the PersistentBottomNavBarItem .
-
Removed platformSpecific property from Navigator functions to make it compatible with Flutter-Web.
-
Minor new features, bug fixes and stability improvements.
-
1.5.615 Jul 2020Nothing published for this version
-
1.5.511 May 2020Release notes
Open source →- Added property
bottomScreenPaddingto control a screen's bottom padding. - Added property
navBarCurveRadiusto change the nav bar curve's radius. - Added property
popAllScreensOnTapOfSelectedTabto toggle between the ability to pop all pushed screens of a particular selected tab on the second press of the said tab.
Release notes
Open source →-
Added property bottomScreenPadding to control a screen's bottom padding.
-
Added property navBarCurveRadius to change the nav bar curve's radius.
-
Added property popAllScreensOnTapOfSelectedTab to toggle between the ability to pop all pushed screens of a particular selected tab on the second press of the said tab.
- Added property
-
1.5.407 May 2020Release notes
Open source →- Fixed background shadow issue when translucency was turned on with
showElevation == true.
Release notes
Open source →- Fixed background shadow issue when translucency was turned on with showElevation == true .
- Fixed background shadow issue when translucency was turned on with
-
1.5.307 May 2020 -
1.5.207 May 2020Release notes
Open source →- Fixed nav bar background color consistency when translucency enabled.
- Added an example for the navigator function
pushDynamicScreenin the sample project. - Minor improvements to some styles.
Release notes
Open source →-
Fixed nav bar background color consistency when translucency enabled.
-
Added an example for the navigator function pushDynamicScreen in the sample project.
-
Minor improvements to some styles.
-
1.5.130 Apr 2020 -
1.5.030 Apr 2020Release notes
Open source →- Added feature to pop back to first screen on tapping of an already selected tab.
- Fixed the issue when new tab was added dynamically.
- Fixed safe area issues.
- Removed property
selectedIndexas it was redundant. UsePersistentTabControllerto control it instead.Breaking Change - Bug fixes.
Release notes
Open source →-
Added feature to pop back to first screen on tapping of an already selected tab.
-
Fixed the issue when new tab was added dynamically.
-
Fixed safe area issues.
-
Removed property selectedIndex as it was redundant. Use PersistentTabController to control it instead. Breaking Change
-
Bug fixes.
-
1.4.530 Apr 2020 -
1.4.429 Apr 2020Release notes
Open source →- Updated dependencies.
- Removed
allCornersvalue fromNavBarCurveas it became redundant after a fix.
Release notes
Open source →-
Updated dependencies.
-
Removed allCorners value from NavBarCurve as it became redundant after a fix.
-
1.4.329 Apr 2020Nothing published for this version
-
1.4.229 Apr 2020Nothing published for this version
-
1.4.129 Apr 2020 -
1.4.029 Apr 2020Release notes
Open source →- Implemented handling of the Android back button.
- Fixed the issue where the app would not close at all on Android back button press.
- Updated navigation bar height to give it the default platform look.
- Updated styles to fix the issue where a tap would not be registered.
-
1.3.129 Apr 2020Nothing published for this version
-
1.3.025 Apr 2020Release notes
Open source →- Incorporated the much requested ability to customize your own bottom navigation bar widget.
- Android's back button will no longer close the app.
-
1.2.225 Apr 2020Nothing published for this version
-
1.2.123 Mar 2020 -
1.2.020 Mar 2020Release notes
Open source →- Added
navBarHeightandfloatingActionWidgetproperties, some bug fixes and (BREAKING CHANGE)isCurvedproperty is now replaced withnavBarCurvewhich acceptsNavBarCurve.
Release notes
Open source →- Added navBarHeight and floatingActionWidget properties, some bug fixes and ( BREAKING CHANGE ) isCurved property is now replaced with navBarCurve which accepts NavBarCurve .
- Added
-
1.1.503 Mar 2020Release notes
Open source →- Fixed issue for style 6 and 8 where a tap would not be registered occasionally.
-
1.1.403 Mar 2020 -
1.1.302 Mar 2020 -
1.1.229 Feb 2020 -
1.1.129 Feb 2020 -
1.1.029 Feb 2020Release notes
Open source →- Added
Neumorphicdesign for the navigation bar. - Scale animations for style 7 and 8.
- More control over translucency.
- Bug fixes and improvements.
Release notes
Open source →-
Added Neumorphic design for the navigation bar.
-
Scale animations for style 7 and 8.
-
More control over translucency.
-
Bug fixes and improvements.
- Added
-
1.0.1629 Feb 2020Nothing published for this version
-
1.0.1527 Jan 2020 -
1.0.1426 Jan 2020 -
1.0.1326 Jan 2020 -
1.0.1226 Jan 2020Release notes
Open source →- Increased space between icon and text for most styles (can be reverted by the use of
bottomPaddingproperty).
Release notes
Open source →- Increased space between icon and text for most styles (can be reverted by the use of bottomPadding property).
- Increased space between icon and text for most styles (can be reverted by the use of
-
1.0.1126 Jan 2020 -
1.0.1026 Jan 2020 -
1.0.926 Jan 2020Release notes
Open source →- Added
isTranslucentproperty forPersistentBottomNavBarItem. - Tweaked
style8andstyle9's magnification.
Release notes
Open source →-
Added isTranslucent property for PersistentBottomNavBarItem .
-
Tweaked style8 and style9 's magnification.
- Added
-
1.0.9+126 Jan 2020 -
1.0.9+226 Jan 2020 -
1.0.824 Jan 2020Release notes
Open source →- Fixed error thrown if
onItemSelectedwas not declared. - Wrapped screens with
Materialfor material elements.
Release notes
Open source →-
Fixed error thrown if onItemSelected was not declared.
-
Wrapped screens with Material for material elements.
- Fixed error thrown if
-
1.0.720 Jan 2020 -
1.0.7+120 Jan 2020