A bottom navigation bar that you can customize with the options you need, without any limits.

Overview

Bottom Personalized Dot Bar

A bottom navigation bar that you can customize with the options you need, without any limits. You can also customize the appearance of the navigation bar.

The development was inspired by the following design: personalized-tab-bar

You can see the source code of this lib inside the /lib folder.

Show some ❀️ and star the repo to support this project

Demo example (Mobile)

Demo example (Tablet 1)

Demo example (Tablet 2)

Package overview

  • Drag and Drop your options!
  • Change icon colors
  • Listen to events 'Sort, Insert and Delete'
  • Dynamically change the selected option
  • Custom options
  • Unlimit options
  • Option to define custom item background color
  • And more ...

Getting Started

Add the plugin:

dependencies:
  ...
  bottom_personalized_dot_bar: ^1.0.2

Import the package

import 'package:bottom_personalized_dot_bar/bottom_personalized_dot_bar.dart';

How to use?

Important! dont use 'bottomNavigationBar' of Scaffold, because it occupies the entire screen, you need to add it inside a Stack.

To add the Options list, you must create BottomPersonalizedDotBarItem, and each must have the unique attribute 'keyItem'.

To modify the selected option, you must update the attribute keyItemSelected of the BottomPersonalizedDotBar

String _itemSelected = 'item-1';
...
..
.
Scaffold(
  body: Stack(
    children: <Widget>[
      .... // Your App Home
      BottomPersonalizedDotBar(
          keyItemSelected: _itemSelected,
          doneText: 'Done',
          settingTitleText: 'Your Menu',
          settingSubTitleText: 'Drag and drop options',
          iconSettingColor: const Color(0xFFFFD201),
          buttonDoneColor: const Color(0xFFFFD500),
          settingSubTitleColor: const Color(0xFFFECE02),
          hiddenItems: <BottomPersonalizedDotBarItem>[
              BottomPersonalizedDotBarItem('item-4', icon: Icons.cloud, name: 'Nube', onTap: (itemSelected) { /* event selected */ }),
              BottomPersonalizedDotBarItem('item-5', icon: Icons.access_alarm, name: 'Alarma', onTap: (itemSelected) { /* event selected */ }),
              BottomPersonalizedDotBarItem('item-6', icon: Icons.message, name: 'Mensaje', onTap: (itemSelected) { /* event selected */ }),
              BottomPersonalizedDotBarItem('item-7', icon: Icons.notifications, name: 'Alerta', onTap: (itemSelected) { /* event selected */ }),
              BottomPersonalizedDotBarItem('item-8', icon: Icons.security, name: 'Seguridad', onTap: (itemSelected) { /* event selected */ }),
              BottomPersonalizedDotBarItem('item-9', icon: Icons.help, name: 'Ayuda', onTap: (itemSelected) { /* event selected */ }),
              BottomPersonalizedDotBarItem('item-10', icon: Icons.settings, name: 'Config.', onTap: (itemSelected) { /* event selected */ }),
          ],
          items: <BottomPersonalizedDotBarItem>[
              BottomPersonalizedDotBarItem('item-1', icon: Icons.sentiment_very_satisfied, name: 'Flutter', onTap: (itemSelected) { /* event selected */ }),
              BottomPersonalizedDotBarItem('item-2', icon: Icons.favorite_border, name: 'Favorito', onTap: (itemSelected) { /* event selected */ }),
              BottomPersonalizedDotBarItem('item-3', icon: Icons.face, name: 'Perfil', onTap: (itemSelected) { /* event selected */ }),
          ],
      ),
    ],
  ),
);

Customization

BottomPersonalizedDotBar

Attribute Description
items List of items to be displayed in the navigation bar
hiddenItems List of items that will be hidden
keyItemSelected Item key that is selected
width Navigation bar width
height Navigation bar height
borderRadius Navigation bar radius
selectedColorIcon Selected Icon color
unSelectedColorIcon Unselected Icon color
navigatorBackground Navigator Container Background color
settingBackground Setting Container Background color (Hidden items)
iconSetting Settings button icon
iconSettingColor Settings button icon color
settingTitleText Setting Title Text
settingTitleColor Setting Title color
settingSubTitleText Setting Sub-Title Text
settingSubTitleColor Setting Sub-Title color
doneText Done button Text
textDoneColor Text Done Color
buttonDoneColor Button done color
hiddenItemBackground Background of hidden item
iconHiddenColor Icon Hidden Color
textHiddenColor Text Hidden Color
dotColor Selection Indicator Color (Dot
boxShadow Shadow of container
onOrderHideItems Event when you sort the hidden options, this has as parameter the list of hidden options with the new order. onOrderHideItems: (List hiddenItems) { /* Your action */ }
onOrderItems Event when ordering browser options, this has as parameter the list of options with the new order onOrderItems: (List items) { /* Your action */ }
onAddItem Event when you add a new option to the navigation bar, this has as parameters the item you add and the list of options. onAddItem: (BottomPersonalizedDotBarItem itemAdd, List items) { /* Your action */ }
onRemoveItem Event when you delete an option from the navigation bar, this has as parameters the element to delete and the list of hidden options. onRemoveItem: (BottomPersonalizedDotBarItem itemRemove, List hiddenItems) { /* Your action */ }

BottomPersonalizedDotBarItem

Attribute Description
keyItem Unique key
icon Item icon
name Item name
onTap Event with you press the item. onTap: (String keyItem) { /* Your action */ }
You might also like...

Open screens/snackbars/dialogs/bottomSheets without context, manage states and inject dependencies easily with Get.

Open screens/snackbars/dialogs/bottomSheets without context, manage states and inject dependencies easily with Get.

Languages: English (this file), Indonesian, Urdu, Chinese, Brazilian Portuguese, Spanish, Russian, Polish, Korean, French. About Get Installing Counte

Jan 8, 2023

Elegant abstraction for complete deep linking navigation in Flutter

Elegant abstraction for complete deep linking navigation in Flutter

Flutter Deep Link Navigation Provides an elegant abstraction for complete deep linking navigation in Flutter. This package only provides deep linking

Dec 27, 2022

A simple and easy to learn declarative navigation framework for Flutter, based on Navigator 2.0.

A simple and easy to learn declarative navigation framework for Flutter, based on Navigator 2.0.

A simple and easy to learn declarative navigation framework for Flutter, based on Navigator 2.0 (Router). If you love Flutter, you would love declarat

Jun 28, 2022

A flutter navigation package

A flutter navigation package

Create By Me(Agalaba Ifeanyi Precious) go Navigate Navigate Like a pro from one Screen to another Using go navigate. go_Navigate provide you the abili

Oct 11, 2021

Easy-to-use Navigator 2.0 router for web, mobile and desktop. URL-based routing, simple navigation of tabs and nested routes.

Easy-to-use Navigator 2.0 router for web, mobile and desktop. URL-based routing, simple navigation of tabs and nested routes.

Routemaster Hello! Routemaster is an easy-to-use router for Flutter, which wraps over Navigator 2.0... and has a silly name. Features Simple declarati

Jan 3, 2023

Flutter Flows made easy! A Flutter package which simplifies navigation flows with a flexible, declarative API.

Flutter Flows made easy! A Flutter package which simplifies navigation flows with a flexible, declarative API.

Flutter Flows made easy! Usage Define a Flow State The flow state will be the state which drives the flow. Each time this state changes, a new navigat

Dec 31, 2022

Flutter Material Design Navigation Drawer Menu

Flutter Material Design Navigation Drawer Menu

navigation_drawer_menu Flutter Material Design Navigation Drawer Menu Navigation drawer is a common UI pattern for adaptive menus. The Material Design

Dec 12, 2022

A Flutter package for easily implementing Material Design navigation transitions.

A Flutter package for easily implementing Material Design navigation transitions.

Morpheus A Flutter package for easily implementing Material Design navigation transitions. Examples Parent-child transition You can use MorpheusPageRo

Jan 7, 2023

Flutter custom BottomBar Navigation Widget

Flutter custom BottomBar Navigation Widget

bottom_bar_with_sheet πŸ’₯ Non-standard way to use more space of screens in your application πŸ’₯ 😳 Custom bottom Sheet under Bottom Navigation Bar 😳 😩

Dec 23, 2022
Comments
  • Failed assertion: boolean expression must not be null

    Failed assertion: boolean expression must not be null

    Launching lib/main.dart on AOSP on IA Emulator in debug mode... Running Gradle task 'assembleDebug'... βœ“ Built build/app/outputs/apk/debug/app-debug.apk. Installing build/app/outputs/apk/app.apk... Syncing files to device AOSP on IA Emulator... I/flutter ( 5599): ══║ EXCEPTION CAUGHT BY GESTURE β•žβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β• I/flutter ( 5599): The following assertion was thrown while handling a gesture: I/flutter ( 5599): Failed assertion: boolean expression must not be null I/flutter ( 5599): I/flutter ( 5599): Either the assertion indicates an error in the framework itself, or we should provide substantially I/flutter ( 5599): more information in this error message to help you determine and fix the underlying cause. I/flutter ( 5599): In either case, please report this assertion by filing a bug on GitHub: I/flutter ( 5599): https://github.com/flutter/flutter/issues/new?template=BUG.md I/flutter ( 5599): I/flutter ( 5599): When the exception was thrown, this was the stack: I/flutter ( 5599): #0 _BottomPersonalizedDotBarState.build.. (package:bottom_personalized_dot_bar/bottom_personalized_dot_bar.dart:508:27) I/flutter ( 5599): #1 State.setState (package:flutter/src/widgets/framework.dart:1148:30) I/flutter ( 5599): #2 _BottomPersonalizedDotBarState.build. (package:bottom_personalized_dot_bar/bottom_personalized_dot_bar.dart:507:21) I/flutter ( 5599): #3 DragGestureRecognizer._checkEnd. (package:flutter/src/gestures/monodrag.dart:439:41) I/flutter ( 5599): #4 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:182:24) I/flutter ( 5599): #5 DragGestureRecognizer._checkEnd (package:flutter/src/gestures/monodrag.dart:439:5) I/flutter ( 5599): #6 DragGestureRecognizer.didStopTrackingLastPointer (package:flutter/src/gestures/monodrag.dart:348:9) I/flutter ( 5599): #7 OneSequenceGestureRecognizer.stopTrackingPointer (package:flutter/src/gestures/recognizer.dart:336:9) I/flutter ( 5599): #8 DragGestureRecognizer._giveUpPointer (package:flutter/src/gestures/monodrag.dart:357:5) I/flutter ( 5599): #9 DragGestureRecognizer.handleEvent (package:flutter/src/gestures/monodrag.dart:281:7) I/flutter ( 5599): #10 PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:76:12) I/flutter ( 5599): #11 PointerRouter._dispatchEventToRoutes. (package:flutter/src/gestures/pointer_router.dart:117:9) I/flutter ( 5599): #12 _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:379:8) I/flutter ( 5599): #13 PointerRouter._dispatchEventToRoutes (package:flutter/src/gestures/pointer_router.dart:115:18) I/flutter ( 5599): #14 PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:101:7) I/flutter ( 5599): #15 GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:218:19) I/flutter ( 5599): #16 GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:198:22) I/flutter ( 5599): #17 GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:156:7) I/flutter ( 5599): #18 GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:102:7) I/flutter ( 5599): #19 GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:86:7) I/flutter ( 5599): #23 _invoke1 (dart:ui/hooks.dart:273:10) I/flutter ( 5599): #24 _dispatchPointerDataPacket (dart:ui/hooks.dart:182:5) I/flutter ( 5599): (elided 3 frames from package dart:async) I/flutter ( 5599): I/flutter ( 5599): Handler: "onEnd" I/flutter ( 5599): Recognizer: I/flutter ( 5599): HorizontalDragGestureRecognizer#cd9a0 I/flutter ( 5599): ════════════════════════════════════════════════════════════════════════════════════════════════════

    opened by devme19 0
Owner
null
Customized πŸš€ Bottom Navigation Bar Using Flutter 🐦

Customized ?? Bottom Navigation Bar Using Flutter ??

AmirHossein Bayat 3 Dec 7, 2022
Persistent Bottom Navigation Bar

Persistent Bottom Navigation Bar A persistent/static bottom navigation bar for Flutter. NOTE: Those migrating from pre 2.0.0 version should check the

Bilal Shahid 421 Dec 20, 2022
Flutter Navigation Best Practices including adapting navigation to platform and branding techniques for navigation surfaces.

Flutter Navigation Best Practices including adapting navigation to platform and branding techniques for navigation surfaces.

Fred Grott 5 Aug 22, 2022
flutter bottom navigation bat project

bottom_navigation A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you starte

Danushan Ravendran 3 Sep 23, 2021
A Flutter implementation of a customizable navigation bar with animations.

A heavily customizable bottom navigation bar with some animation modifiers.

null 1 Jun 17, 2022
Fast code and awesome design-ui for flutter navigation bar

Flutter-awesome-bottom-navigation-bar ??‍?? Fast code and awesome design-ui for flutter navigation bar ?? Getting Started # First you need to add flas

Hmida 20 Nov 22, 2022
Transparent Android system navigation bar with Flutter and FlexColorScheme package.

Sysnavbar with FlexColorScheme Transparent Android system navigation bar with Flutter and FlexColorScheme. FlexColorScheme V4 Notice If you are using

Rydmike 12 Oct 21, 2022
A Flutter package for easy implementation of curved navigation bar

curved_navigation_bar pub package A Flutter package for easy implementation of curved navigation bar. Add dependency dependencies: curved_navigation

null 556 Dec 9, 2022
A Custom Extended Scaffold with Expandable and Floating Navigation Bar

Custom Extended Scaffold Custom Flutter widgets that makes Bottom Navigation Floating and can be expanded with much cleaner a

Ketan Choyal 139 Dec 10, 2022
Fluro is a Flutter routing library that adds flexible routing options like wildcards, named parameters and clear route definitions.

English | PortuguΓͺs The brightest, hippest, coolest router for Flutter. Features Simple route navigation Function handlers (map to a function instead

Luke Pighetti 3.5k Jan 4, 2023