Awesome Navigation Bar

awesome_navigation_bar is a Flutter package that provides a user-friendly bottom navigation bar widget. This widget is designed to simplify the implementation of a bottom navigation bar with icons, labels, and animations for your Flutter applications.

Awesome Navigation Bar

Installation

1. To use this package, add awesome_navigation_bar as a dependency in your pubspec.yaml file:

dependencies:
  awesome_navigation_bar: ^1.0.4

2. Import the package and use it in your Flutter App:

import 'package:awesome_navigation_bar/awesome_navigation_bar.dart';

Example

class MyHomePage extends StatefulWidget {
  const MyHomePage({Key? key, required this.title}) : super(key: key);

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _currentIndex = 0; // Initial index

  void _onNavigationBarItemTapped(int index) {
    setState(() {
      _currentIndex = index;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: _getBodyContent(_currentIndex),
      floatingActionButton: FloatingActionButton(
        onPressed: () {
          // Add your logic for the floating action button here
        },
        tooltip: 'Increment',
        child: const Icon(Icons.add),
      ),
      bottomNavigationBar: AwesomeNavigationBar(
        currentIndex: _currentIndex,
        onTap: _onNavigationBarItemTapped,
        sheetNames: const [
          "Sheet-1",
          "Sheet-2",
          "Sheet-3",
          "Sheet-4",
        ],
      ),
    );
  }

  Widget _getBodyContent(int currentIndex) {
    // Add your logic for different pages based on the currentIndex
    switch (currentIndex) {
      case 0:
        return const Center(
          child: Text('Home Page'),
        );
      case 1:
        return const Center(
          child: Text('Template Page'),
        );
      case 2:
        return const Center(
          child: Text('Top Page'),
        );
      case 3:
        return Container(); // Your custom page for index 3
      case 4:
        return const Center(
          child: Text('Settings Page'),
        );
      default:
        return Container();
    }
  }
}

Contributions

Feel free to contribute to this project by creating issues, opening pull requests, or providing feedback. Your input is valuable, and together we can make this package even more awesome!