## Navbar Notifier

Navbar Notifier is a secret sauce of this package where all the magic happens, from popping routes in tabs, hide/unhide bottom navbar to intercepting back button press events on android and much more. And more importantly this class is accessible to your app from any part of your application. This page demonstrates the usage of this class.

### Pop routes from any tab

NavbarRouter gives you the control to manage the routes in any tab. You can pop route(s) from any tab using the `NavbarNotifier` class.

### Pop the current route from a tab

```dart
   await NavbarNotifier.popRoute(index);
```

### Pop all routes from a tab
```dart
   await NavbarNotifier.popAllRoutes(index);
```

### Hide/Show Bottom Navbar

NavbarRouter gives you the ability to hide or show the bottom navbar. You can hide or show the bottom navbar using the `hideBottomNavBar` setter.

### Hide Bottom Navbar
```dart
    NavbarNotifier.hideBottomNavBar = true;
```

### Show Bottom Navbar
```dart
    NavbarNotifier.hideBottomNavBar = false;
```

### Programmatically change the current index

NavbarRouter gives you the control to change the current index of the bottom navbar. You can change the current index of the bottom navbar using the `index` setter of the `NavbarNotifier` class.

*Sets the current index of the bottom navbar to 1.*

```dart
   NavbarNotifier.index = 1;
```

### Navbar index change Listener

You can listen to the index change events of the bottom navbar using the `addIndexChangeListener` method of the `NavbarNotifier` class.

```dart
    NavbarNotifier.addIndexChangeListener((x) {
      print('NavbarNotifier.indexChangeListener: $x');
    });
```

The Notifier is capable of handling multiple listeners. You can add as many listeners as you want.

> Note: You should ensure that you remove the listener when you are done with it.

You can remove the listener using the `removeLastListener` or using `removeAllListeners` to remove all listeners method of the `NavbarNotifier` class.

```dart
NavbarNotifier.removeAllListeners();
```
### Show/Hide the SnackBar

NavbarRouter gives you the ability to show or hide the SnackBar. You can show or hide the SnackBar using the `showSnackBar` and `hideSnackBar` methods of the `NavbarNotifier` class.

#### Show the SnackBar
```dart
    NavbarNotifier.showSnackBar(
      context,
      'This is a SnackBar',
      duration: Duration(seconds: 2),
    );
```

#### Hide the SnackBar
```dart
    NavbarNotifier.hideSnackBar(context);
```







