bottom_navbar_with_indicator

Creator: coderz1093

Last updated:

Add to Cart

Description:

bottom navbar with indicator

Bottom Navbar With Custom Indicator #
bottom_navbar_with_indicator is a Flutter package for a fully customizable bottom navigation bar with line indicators and gradient. ✨ ✨
It allows custom bottom bar with any Custom Widget (Stateless or Stateful).
Very smooth animations supporting Android, iOS & WebApp, DesktopApp.
Show Cases #




Why? #
We build this package because we wanted to:

have a complete customizable bottom bar with indicators.
be able to add gradient color.
pass dynamic icon with label.
choose our own style like IconSize, FontSize, selectedColor,unSelectedColor, splashColor & call back function (onTap).

Installation #
Create a new project with the command
flutter create MyApp
copied to clipboard
Add
bottom_navbar_with_indicator: ...
copied to clipboard
to your pubspec.yaml of your flutter project.
OR
run
flutter pub add bottom_navbar_with_indicator
copied to clipboard
in your project's root directory.
In your library add the following import:
import 'package:bottom_navbar_with_indicator/bottom_navbar_with_indicator.dart';
copied to clipboard
For help getting started with Flutter, view the online documentation.
Usage #
Usage without gradient: #
void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
const MyApp({super.key});

@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: const MyExample(),
);
}
}

class MyExample extends StatefulWidget {
const MyExample({super.key});

@override
_MyExampleState createState() => _MyExampleState();
}

class _MyExampleState extends State<MyExample> {
int _selectedIndex = 0; //default index
static const String basePath = "assets/images";
static const String accountImage = "$basePath/account.png";

final List<Widget> _widgetOptions = [
const Text('Home'),
const Text('Account'),
const Text('Leaves'),
const Text('Loyalty'),
const Text('Requests'),
];

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Example'),
),
body: Center(
child: _widgetOptions.elementAt(_selectedIndex),
),
bottomNavigationBar: CustomLineIndicatorBottomNavbar(
selectedColor: Colors.blue,
unSelectedColor: Colors.black54,
backgroundColor: Colors.white,
currentIndex: _selectedIndex,
unselectedIconSize: 15,
selectedIconSize: 20,
onTap: (index) {
setState(() {
_selectedIndex = index;
});
},
enableLineIndicator: true,
lineIndicatorWidth: 3,
indicatorType: IndicatorType.top,
// gradient: LinearGradient(
// colors: [Colors.pink, Colors.yellow],
// ),
customBottomBarItems: [
CustomBottomBarItems(
label: 'Home',
icon: Icons.home,
// assetsImagePath: accountImage,
isAssetsImage: false,
),
CustomBottomBarItems(
label: 'Account',
//icon: Icons.account_box_outlined,
assetsImagePath: accountImage,
isAssetsImage: true,
),
CustomBottomBarItems(
label: 'Leaves',
icon: Icons.calendar_today_outlined,
// assetsImagePath: accountImage,
isAssetsImage: false,
),
CustomBottomBarItems(
label: 'Loyalty',
icon: Icons.card_giftcard_rounded,
assetsImagePath: accountImage,
isAssetsImage: false,
),
CustomBottomBarItems(
label: 'Requests',
// icon: Icons.list,
assetsImagePath: accountImage,
isAssetsImage: true,
),
],
),
);
}
}
copied to clipboard
Usage with gradient : #
class MyExample extends StatefulWidget {
const MyExample({super.key});

@override
_MyExampleState createState() => _MyExampleState();
}

class _MyExampleState extends State<MyExample> {
int _selectedIndex = 0; //default index
static const String basePath = "assets/images";
static const String accountImage = "$basePath/account.png";

final List<Widget> _widgetOptions = [
const Text('Home'),
const Text('Account'),
const Text('Leaves'),
const Text('Loyalty'),
const Text('Requests'),
];

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Example'),
),
body: Center(
child: _widgetOptions.elementAt(_selectedIndex),
),
bottomNavigationBar: CustomLineIndicatorBottomNavbar(
selectedColor: Colors.blue,
unSelectedColor: Colors.black54,
backgroundColor: Colors.white,
currentIndex: _selectedIndex,
unselectedIconSize: 15,
selectedIconSize: 20,
onTap: (index) {
setState(() {
_selectedIndex = index;
});
},
enableLineIndicator: true,
lineIndicatorWidth: 3,
indicatorType: IndicatorType.top,
gradient: LinearGradient(
colors: [Colors.pink, Colors.yellow],
),
customBottomBarItems: [
CustomBottomBarItems(
label: 'Home',
icon: Icons.home,
// assetsImagePath: accountImage,
isAssetsImage: false,
),
CustomBottomBarItems(
label: 'Account',
//icon: Icons.account_box_outlined,
assetsImagePath: accountImage,
isAssetsImage: true,
),
CustomBottomBarItems(
label: 'Leaves',
icon: Icons.calendar_today_outlined,
// assetsImagePath: accountImage,
isAssetsImage: false,
),
CustomBottomBarItems(
label: 'Loyalty',
icon: Icons.card_giftcard_rounded,
assetsImagePath: accountImage,
isAssetsImage: false,
),
CustomBottomBarItems(
label: 'Requests',
// icon: Icons.list,
assetsImagePath: accountImage,
isAssetsImage: true,
),
],
),
);
}
}
copied to clipboard
Constructor #
Basic



Parameter
Default
Description
Required




icon
-
Icon of bottom bar widget.
true


label
-
Label text of bottom bar.
true


label
-
Label text of bottom bar.
true


selectedColor
-
Bottom tab selected color.
false


unSelectedColor
-
Bottom tab unselected color.
false


unSelectedFontSize
11
Unselected tab font size
false


selectedFontSize
12
Selected tab font size.
false


selectedIconSize
20
Selected tab icon size.
false


unselectedIconSize
15
UnSelected tab icon size.
false


splashColor
-
On click splash color.
false


currentIndex
-
bottom nav bar list current index.
false


onTap
-
On tap callback function to handle user click.
true


index
-
List index.
true


enableLineIndicator
false
Set to true if showing line indicator.
false


lineIndicatorWidth
3
Width of line indicator.
false


indicatorType
IndicatorType.top
Indicator type for ex. top and bottom.
false


gradient
-
Gradient property for enable gradient color.
false

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.