import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; // Import screenutil import 'home_screen.dart'; import 'daily_care_screen.dart'; import 'mungnyangz_screen.dart'; import 'my_info_screen.dart'; class MainScreen extends StatefulWidget { const MainScreen({super.key}); @override State createState() => _MainScreenState(); } class _MainScreenState extends State { int _selectedIndex = 0; // 탭별 화면 리스트 final List _screens = [ const HomeScreen(), const DailyCareScreen(), const MungNyangzScreen(), const MyInfoScreen(), ]; void _onItemTapped(int index) { setState(() { _selectedIndex = index; }); } // SVG 아이콘 빌더 (선택 여부에 따라 색상 변경) Widget _buildSvgIcon(String assetName, int index) { return SvgPicture.asset( assetName, width: 24.w, height: 24.h, colorFilter: ColorFilter.mode( _selectedIndex == index ? Colors.black : Colors.grey, BlendMode.srcIn, ), ); } @override Widget build(BuildContext context) { return Scaffold( body: IndexedStack(index: _selectedIndex, children: _screens), bottomNavigationBar: Container( padding: EdgeInsets.symmetric(vertical: 10.h), decoration: const BoxDecoration( color: Colors.white, border: Border(top: BorderSide(color: Color(0xFFEEEEEE), width: 1.0)), ), child: Theme( data: Theme.of(context).copyWith( splashColor: Colors.transparent, highlightColor: Colors.transparent, ), child: BottomNavigationBar( backgroundColor: Colors.white, elevation: 0, currentIndex: _selectedIndex, onTap: _onItemTapped, type: BottomNavigationBarType.fixed, selectedItemColor: Colors.black, unselectedItemColor: Colors.grey, selectedLabelStyle: TextStyle( fontFamily: 'SCDream', fontSize: 14.sp, fontWeight: FontWeight.bold, color: Colors.black, ), unselectedLabelStyle: TextStyle( fontFamily: 'SCDream', fontSize: 14.sp, fontWeight: FontWeight.w500, color: Colors.grey, ), showUnselectedLabels: true, items: [ BottomNavigationBarItem( icon: Padding( padding: EdgeInsets.only(bottom: 8.h), child: _buildSvgIcon('assets/icons/home_icon.svg', 0), ), label: '홈', ), BottomNavigationBarItem( icon: Padding( padding: EdgeInsets.only(bottom: 8.h), child: _buildSvgIcon('assets/icons/calendar_icon.svg', 1), ), label: '데일리케어', ), BottomNavigationBarItem( icon: Padding( padding: EdgeInsets.only(bottom: 8.h), child: _buildSvgIcon('assets/icons/card_icon.svg', 2), ), label: '펫 명함함', ), BottomNavigationBarItem( icon: Padding( padding: EdgeInsets.only(bottom: 8.h), child: _buildSvgIcon('assets/icons/my_icon.svg', 3), ), label: '내 정보', ), ], ), ), ), ); } }