ss_bottom_navbar
Flutter modern bottom nav bar. Compatible with Android & iOS. You can customize it freely.
Getting Started
dependencies:
ss_bottom_navbar: 0.1.1
$ flutter pub get
import 'package:ss_bottom_navbar/src/ss_bottom_navbar.dart';
Example
SSBottomNav
Usage
Create Items
final items = [
SSBottomNavItem(text: 'Home', iconData: Icons.home),
SSBottomNavItem(text: 'Store', iconData: Icons.store),
SSBottomNavItem(text: 'Add', iconData: Icons.add, isIconOnly: true),
SSBottomNavItem(text: 'Explore', iconData: Icons.explore),
SSBottomNavItem(text: 'Profile', iconData: Icons.person),
];
Create the state
SSBottomBarState _state = SSBottomBarState();
SSBottomNav(
items: items,
state: _state,
color: Colors.black,
selectedColor: Colors.white,
unselectedColor: Colors.black,
onTabSelected: (index) {
debugPrint(index);
setState(() {
_index = index;
});
}
),
With bottom sheet dialog
SSBottomNav(
items: items,
state: _state,
color: Colors.black,
selectedColor: Colors.white,
unselectedColor: Colors.black,
visible: isVisible,
bottomSheetWidget: Container(),
showBottomSheetAt: 2,
onTabSelected: (index) {}
),
Customization
Name | Type | Description |
---|---|---|
items |
List<SSBottomNavItem> |
list of SSBottomNavItem items |
state |
SSBottomBarState |
state of the bottome bar as ChangeNotifier |
iconSize |
double |
size of the icon on items |
backgroundColor |
Color |
background color of the widget |
color |
Color |
color of the slider |
selectedColor |
Color |
items's color when selected |
unselectedColor |
Color |
items's color when not selected |
onTabSelected |
ValueChanged<int> |
function that returns the index on tab selected |
shadow |
List<BoxShadow> |
shadow of the slider |
visible |
bool |
visibilty of the SSBottomNavItem |
bottomSheetWidget |
Widget |
child of the bottom sheet dialog |
showBottomSheetAt |
int |
the index of SSBottomNavItem to show the SSBottomNavItem |
bottomSheetHistory |
bool |
default true . option to go back previous tab if showBottomSheetAt pressed while SSBottomSheet showing |
dismissedByAnimation |
ValueChanged<bool> |
function that returns true if SSBottomSheet dismissed by animation |
SSBottomSheet
If you want to use SSBottomNav
's bottom sheet dialog, you can do that with SSBottomSheet
Usage
SSBottomSheet.show(
context: context,
child: bottomSheet(),
onPressed: (offset) {}
);
bottomSheet() => Container(
color: Colors.white,
child: Column(
children: [
ListTile(
leading: Icon(Icons.camera_alt),
title: Text('Use Camera'),
),
ListTile(
leading: Icon(Icons.photo_library),
title: Text('Choose from Gallery'),
),
ListTile(
leading: Icon(Icons.edit),
title: Text('Write a Story'),
),
],
),
);
Dismiss the Bottom Sheet
Navigator.maybePop(context);
Customization
Name | Type | Description |
---|---|---|
Widget |
child |
child widget |
backgroundColor |
Color |
background color of the widget |
bottomMargin |
double |
margin from bottom acording to your bottom navbars height |
onPressed |
ValueChanged<Offset> |
returns Offset when tapped |
Contributions
Contributions of any kind are more than welcome! Feel free to fork and improve in any way you want, make a pull request, or open an issue.