Add the plugin (pub coming soon):
dependencies:
...
fancy_bottom_navigation: ^0.3.2
For now this is limited to more than 1 tab, and less than 5. So 2-4 tabs.
Adding the widget
bottomNavigationBar: FancyBottomNavigation(
tabs: [
TabData(iconData: Icons.home, title: "Home"),
TabData(iconData: Icons.search, title: "Search"),
TabData(iconData: Icons.shopping_cart, title: "Basket")
],
onTabChangedListener: (position) {
setState(() {
currentPage = position;
});
},
)
iconData -> Icon to be used for the tab
title -> String to be used for the tab
onClick -> Optional function to be used when the circle itself is clicked, on an active tab
tabs -> List of TabData
objects
onTabChangedListener -> Function to handle a tap on a tab, receives int position
initialSelection -> Defaults to 0
circleColor -> Defaults to null, derives from Theme
activeIconColor -> Defaults to null, derives from Theme
inactiveIconColor -> Defaults to null, derives from Theme
taxtColor -> Defaults to null, derives from Theme
barBackgroundColor -> Defaults to null, derives from Theme
gradient -> Defaults to null, this will disable inactiveIconColor and circleColor
key -> Defaults to null
The bar will attempt to use your current theme out of the box, however you may want to theme it. Here are the attributes:
To select a tab programmatically you will need to assign a GlobalKey to the widget. When you want to change tabs you will need to access the State using this key, and then call setPage(position)
.
See example project, main.dart, line 75 for an example.
Using this package in a live app, let me know and I'll add you app here.
This package was inspired by a design on dribbble by Manoj Rajput:
https://dribbble.com/shots/5419022-Tab
Contributions are welcome, please submit a PR :)