New
Flutter Bottomnavigation Not Visible

I am building an app with Flutter and I am currently trying to implement a bottomNavigationBar but currently it is not visible when I run the app. My first guess was it could be something to do with the Streambuilder that I have put in the home property of the build method in MyApp class
Here's my code:
import 'package:firebase_app_check/firebase_app_check.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:iinhouse/core/screens/create_account.dart';
import 'package:iinhouse/core/screens/home.dart';
import 'package:iinhouse/core/screens/loader.dart';
import 'package:iinhouse/core/screens/login.dart';
import 'package:iinhouse/core/screens/verify_email.dart';
// Create new screens for the bottom navigation.
class Screen1 extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Center(child: Text('Screen 1'));
}
}
class Screen2 extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Center(child: Text('Screen 2'));
}
}
class Screen3 extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Center(child: Text('Screen 3'));
}
}
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
await FirebaseAppCheck.instance.activate();
runApp(const ProviderScope(child: MyApp()));
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'iinhouse',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
routes: {
'/login': (context) => const Login(),
'/create_account': (context) => const CreateAccountPage(),
'/verify_email': (context) => const VerifyEmailScreen(),
'/home': (context) => HomeScreen()
},
initialRoute: '/login',
home: StreamBuilder(
stream: FirebaseAuth.instance.authStateChanges(),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return Loader();
}
if (snapshot.hasData) {
final user = snapshot.data;
if (user!.emailVerified) {
return MyHomePage(); // Use the new wrapper widget
} else {
return const VerifyEmailScreen();
}
}
return const Login();
},
),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key});
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _selectedIndex = 0;
final List<Widget> _screens = <Widget>[
HomeScreen(), // Ensure HomeScreen is const if possible
Screen2(),
Screen3(),
];
void _onItemTapped(int index) {
setState(() {
_selectedIndex = index;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: _screens[_selectedIndex],
bottomNavigationBar: BottomNavigationBar(
type: BottomNavigationBarType.fixed,
items: const <BottomNavigationBarItem>[
BottomNavigationBarItem(
backgroundColor: Colors.white,
icon: Icon(
Icons.home,
color: Colors.black,
),
label: 'Home',
),
BottomNavigationBarItem(
icon: Icon(Icons.business),
label: 'Business',
),
BottomNavigationBarItem(
icon: Icon(Icons.school),
label: 'School',
),
],
currentIndex: _selectedIndex,
selectedItemColor: Colors.deepPurple,
onTap: _onItemTapped,
),
);
}
}
class HomeScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Text('Home Screen'),
),
);
}
}