persistent_navbar_pro 0.0.1 copy "persistent_navbar_pro: ^0.0.1" to clipboard
persistent_navbar_pro: ^0.0.1 copied to clipboard

A versatile Flutter bottom navigation bar supporting both named routes and direct widget-based navigation. Each tab maintains its own independent navigation stack, allowing for persistent state while [...]

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:persistent_navbar_pro/persistent_bottom_pro.dart';

void main() {
  runApp(const MyApp());
}

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const Dash(),
    );
  }
}

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

  @override
  Widget build(BuildContext context) {
    return PersistentNavbar(

        screens: [
          const Home(),
          const Settings()
        ],
        items: [
          NavBarItem(
            icon: Icon(Icons.home),
            label: "Home",
          ),
          NavBarItem(
            icon: Icon(Icons.settings),
            label: "Settings",
          ),
        ]
    );
  }
}


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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        
      ),
      body: Center(
        child: Column(
          children: [
            Text("Home"),
            ElevatedButton(
                onPressed: () => Navigator.push(context, MaterialPageRoute(builder: (context) => const HomeSubPage())),
                child: Text("Sub Page")
            )
          ],
        ),
      ),
    );
  }
}

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Text("Settings"),
      ),
    );
  }
}

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Column(
        children: [
          Text("Home Sub Page 1"),
          ElevatedButton(
              onPressed: () => Navigator.push(context, MaterialPageRoute(builder: (context) => const HomeSubPage2())),
              child: Text("Go To Home Sub Page 2")
          )
        ],
      ),
    );
  }
}

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Text("SubPage 2"),
      ),
    );
  }
}
15
likes
0
points
4
downloads

Publisher

verified publisherfaizanahmad.com

Weekly Downloads

A versatile Flutter bottom navigation bar supporting both named routes and direct widget-based navigation. Each tab maintains its own independent navigation stack, allowing for persistent state while switching between tabs. Works seamlessly with or without named routes, making it easy to integrate into new or existing projects. Customize icons, labels, and navigation logic per tab.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter

More

Packages that depend on persistent_navbar_pro