Flutter: Simple Flutter Navigation app UI
Crafting a Simple Flutter App: My Nav App
In this blog post, we’ll walk you through creating a basic yet essential Flutter application with a bottom navigation bar. This guide will help you understand the core components of Flutter and how to structure your app for scalability and usability.
Introduction
Flutter is a powerful framework for building cross-platform mobile applications. In this tutorial, we’ll create a simple app with a bottom navigation bar featuring four primary sections: Home, Automate, Store, and Profile. We'll provide the complete code along with explanations to help you understand how everything fits together.
Setting Up Your Flutter Project
First, ensure you have Flutter installed. If not, follow the [official installation guide](https://flutter.dev/docs/get-started/install). Once installed, create a new Flutter project:
flutter create my_nav_app
cd my_nav_app
The Code
Here’s the complete code for our simple Flutter app:
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'My Nav App',
theme: ThemeData(
primarySwatch: Colors.blue,
textTheme: const TextTheme(
bodyMedium: TextStyle(color: Colors.black, fontSize: 18),
),
),
home: const MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key});
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _selectedIndex = 0;
static const List<Widget> _widgetOptions = <Widget>[
Center(child: Text('Home Page', style: TextStyle(fontSize: 24))),
Center(child: Text('Automate Page', style: TextStyle(fontSize: 24))),
Center(child: Text('Store Page', style: TextStyle(fontSize: 24))),
Center(child: Text('Profile Page', style: TextStyle(fontSize: 24))),
];
void _onItemTapped(int index) {
setState(() {
_selectedIndex = index;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('My Nav App'),
actions: [IconButton(onPressed: () {}, icon: Icon(Icons.add_circle))],
),
body: _widgetOptions.elementAt(_selectedIndex),
bottomNavigationBar: BottomNavigationBar(
items: const <BottomNavigationBarItem>[
BottomNavigationBarItem(
icon: Icon(Icons.home_outlined),
activeIcon: Icon(Icons.home),
label: 'Home',
),
BottomNavigationBarItem(
icon: Icon(Icons.auto_awesome_outlined),
activeIcon: Icon(Icons.auto_awesome),
label: 'Automate',
),
BottomNavigationBarItem(
icon: Icon(Icons.store_outlined),
activeIcon: Icon(Icons.store),
label: 'Store',
),
BottomNavigationBarItem(
icon: Icon(Icons.person_outline),
activeIcon: Icon(Icons.person),
label: 'Profile',
),
],
currentIndex: _selectedIndex,
selectedItemColor: Colors.blueAccent,
unselectedItemColor: Colors.grey,
showUnselectedLabels: true,
onTap: _onItemTapped,
type: BottomNavigationBarType.fixed,
),
);
}
}
Output:
Comments
Post a Comment