All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Fixed
null
error aroundrouteAndNavigatorSettings
.
- Breaking Changes
- For
PersistentTabView.custom
,List<Widget> screens
has been replaced withList<CustomNavBarScreen> screens
. - Property
routeAndNavigatorSettings
has been removed fromPersistentTabView.custom
. You now defineRouteAndNavigatorSettings
for each screen separately inCustomNavBarScreen
. Please refer to the Readme file for more instructions.
- For
- Updated README.md
- 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 ofimport "package:persistent_bottom_nav_bar/persistent_tab_view.dart";
.
- To import the package, you will now have to use
- Fixed issues reported by
flutter analyze
.
- Removed deprecated classes.
- Fixed unwanted trigger of
onWillPop
when Android back button is pressed. - Fixed the bug where bar in
Style3
andStyle4
would not work correctly when margin was applied. - Fixed typos in Readme and Changelog.
- Updated example project to run on latest Android versions.
- 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 withEdgeInsets
in thepadding
property.itemAnimationProperties
andscreenTransitionAnimation
are now part of propertyanimationSettings
.- Renamed
confineInSafeArea
toconfineToSafeArea
. - Removed redundant properties
popAllScreensOnTapOfSelectedTab
andpopAllScreensOnTapAnyTabs
. Added new propertypopBehaviorOnSelectedNavBarItemPress
to cover this behavior. - Property
hideNavigationBar
is 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
fadeIn
animation inscreenTransitionAnimation
. - New function
popUntilFirstScreenOnSelectedTabScreen
introduced inPersistentNavBarNavigator
. - If opacity is less than 1 in
PersistentBottomNavBarItem
andboxShadow
is appliedNavBarDecoration
,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
onPersistentTabController
was other than 0 instyle19
. floatingActionButton
is now fixed above the screens instead of separate button for each screen.
- Fixed null errors around
- Fixed onWillPop assert error
- Fixed linting and formatting errors
- 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
- Fixed error while pushing new screens through the included Navigator functions.
- Fixed type cast error with
NavigatorObserver
.
- Null safety migration.
inactiveIcon
is now available inPersistentBottomNavBarItem
.- 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. PersistentBottomNavBarItemrouteAndNavigatorSettings
has been removed for non-custom navigation bar. Instead, you must now declarerouteAndNavigatorSettings
inPersistentBottomNavBarItem
.activeColor
is nowactiveColorPrimary
.inactiveColor
is nowinactiveColorPrimary
.activeColorAlternate
is nowactiveColorSecondary
.onPressed
now returns context of the selected screen.
- Argument
routeAndNavigatorSettings
added to handleNavigator.pushNamed(context, 'routeName')
. Please define your routes and other navigator settings like navigator observers here as well. - Breaking Changes
- Arguments
initalRoute
,navigatorObservers
andnavigatorKeys
removed and shifted torouteAndNavigatorSettings
.
- Arguments
- Added new arguments
navigatorObservers
andnavigatorKeys
for the main navigation bar widget. - No need to call
setState
when updating active tab using the PersistentTabController. - Function argument
selectedTabScreenContext
exposescontext
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 usePersistentTabView.custom()
.- Argument
iconSize
has 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.
- Added
TextStyle
property for title in the PersistentBottomNavBarItem. - Added
margin
property for the navigation bar. - Bug fixes.
- Bug fixes related to decoration border.
- Bug fixes.
- Bug fixes.
- Fixed
hideNavigationBar
animation jitter and updated Readme.
- README updated.
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 thePersistentBottomNavBarItem
. - Removed
platformSpecific
property from Navigator functions to make it compatible with Flutter-Web. - Minor new features, bug fixes and stability improvements.
- 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.
- Fixed background shadow issue when translucency was turned on with
showElevation == true
.
- Updated Readme file.
- 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.
- Reverted changes to
PersistentTabController
.
- 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. UsePersistentTabController
to control it instead.Breaking Change
- Bug fixes.
- Fixed nav bar translucency for provided styles.
- Updated dependencies.
- Removed
allCorners
value fromNavBarCurve
as it became redundant after a fix.
- Improvements to readme.
- 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.
- Incorporated the much requested ability to customize your own bottom navigation bar widget.
- Android's back button will no longer close the app.
- Fixed centering of label text in style 1, 7, 9 and 10.
- Added
navBarHeight
andfloatingActionWidget
properties, some bug fixes and (BREAKING CHANGE
)isCurved
property is now replaced withnavBarCurve
which acceptsNavBarCurve
.
- Fixed issue for style 6 and 8 where a tap would not be registered occasionally.
- Bug fixes and improvements for style 6 and 8.
- Bug fixes.
- Updated project description.
- Memory leakage improvements.
- Added
Neumorphic
design for the navigation bar. - Scale animations for style 7 and 8.
- More control over translucency.
- Bug fixes and improvements.
- bug fixes.
- Fixed
showElevation
invisible shadow issue.
- bug fixes.
- Increased space between icon and text for most styles (can be reverted by the use of
bottomPadding
property).
- bug fixes.
- bug fixes.
- transparency color improvements.
- bug fixes.
- Added
isTranslucent
property forPersistentBottomNavBarItem
. - Tweaked
style8
andstyle9
's magnification.
- Fixed error thrown if
onItemSelected
was not declared. - Wrapped screens with
Material
for material elements.
- Updated README file.
- Updated
style10
's andstyle7
's shadow.
- Updated
style10
's andstyle7
's shadow.
- Updated
style10
's borders.
- Updated
style8
's text magnification and added newstyle10
.
- Updated navigator functions' arguments
BREAKING CHANGE
.
- Updated navigator functions' arguments and added a new nav bar style.
- Updated return type of navigator functions.
- Added function for pushing
modal
screens.
- Updated style8's magnification.
- Updated navigator functions.
- Added another style for the nav bar.
- Added
horizontalPadding
property for the nav bar.
- Fixed issue with
bottomPadding
.
- Updated
pushNewScreen
functions.
- Updated project description.
- Updated font sizes. Added 'bottomPadding` property for navigation bar items.
- Fixes in
pushNewScreen
.
- Fixes in
pushNewScreen
.
- Updated package's description.
- Stable version released.
- Fixed formatting.
- Example project added to repository.
- Updated README.md
- Updated README.md
- Persistent Bottom Navigation.
- Ability to push new screen with or without bottom navigation bar.
- 8 styles for the bottom navigation bar (includes BottomNavyBar style).
- Includes function for pushing screen with or without the bottom navigation bar i.e. pushNewScreen() and pushNewScreenWithRouteSettings().
- Includes platform specific behavior as an option (specify it in the two navigator functions).
- Based on flutter's Cupertino(iOS) bottom navigation bar.