import 'package:flutter/material.dart'; import 'package:get/get.dart'; import '../../home/views/home_view.dart'; import '../../jadwal/views/jadwal_view.dart'; import '../controllers/navbar_controller.dart'; class NavbarView extends StatelessWidget { const NavbarView({super.key}); @override Widget build(BuildContext context) { return GetBuilder( init: NavbarController(), builder: (controller) { return Scaffold( body: IndexedStack( index: controller.selectedIndex, children: const [ HomeView(), JadwalView(), ], ), bottomNavigationBar: BottomAppBar( color: Colors.blue, elevation: 10, child: LayoutBuilder( builder: (context, constraints) { double screenWidth = constraints.maxWidth; double horizontalPadding = screenWidth * 0.1; return Padding( padding: EdgeInsets.symmetric(horizontal: horizontalPadding), child: SizedBox( height: 65, child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ _buildNavItem( icon: Icons.home, label: 'Beranda', isActive: controller.selectedIndex == 0, onTap: () => controller.changeTabIndex(0), ), _buildNavItem( icon: Icons.schedule, label: 'Jadwal', isActive: controller.selectedIndex == 1, onTap: () => controller.changeTabIndex(1), ), ], ), ), ); }, ), ), ); }, ); } static Widget _buildNavItem({ required IconData icon, required String label, required bool isActive, required VoidCallback onTap, }) { return GestureDetector( onTap: onTap, child: Column( mainAxisSize: MainAxisSize.min, mainAxisAlignment: MainAxisAlignment.center, children: [ Icon( icon, color: isActive ? Colors.white : Colors.white70, ), const SizedBox(height: 4), Text( label, style: TextStyle( fontSize: 12, color: isActive ? Colors.white : Colors.white70, ), ), ], ), ); } }