import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:pharmacy_mobile/pages/customer_pages/customer_cart_page.dart'; import 'package:pharmacy_mobile/pages/customer_pages/customer_main_page.dart'; import 'package:pharmacy_mobile/pages/customer_pages/customer_profile_page.dart'; import 'package:pharmacy_mobile/pages/customer_pages/customer_search_page.dart'; import 'package:pharmacy_mobile/widgets/text_widget.dart'; import 'package:animated_notch_bottom_bar/animated_notch_bottom_bar/animated_notch_bottom_bar.dart'; class CustomerPage extends StatefulWidget { const CustomerPage({super.key}); @override State createState() => _CustomerPageState(); } class _CustomerPageState extends State { final _pageController = PageController(initialPage: 0); final NotchBottomBarController _notchController = NotchBottomBarController(index: 0); void sample() {} @override Widget build(BuildContext context) { final List bottomBarPages = [ const CustomerMainPage(), const CustomerSearchPage(), const CustomerCartPage(), const CustomerProfilePage() ]; final Color selectedBarColor = const Color.fromRGBO(241, 255, 255, 0.83); final Color unselectedBarColor = const Color.fromRGBO(206, 206, 206, 1); final double barFontSize = 12; final double barIconInactiveSize = 20; final double barIconActiveSize = 20; return PopScope( canPop: false, child: Scaffold( resizeToAvoidBottomInset: false, body: PageView( controller: _pageController, physics: const NeverScrollableScrollPhysics(), children: List.generate(bottomBarPages.length, (index) => bottomBarPages[index]), ), extendBody: true, bottomNavigationBar: AnimatedNotchBottomBar( notchBottomBarController: _notchController, showLabel: true, textOverflow: TextOverflow.visible, maxLine: 1, kIconSize: 24, kBottomRadius: 20.0, color: const Color.fromRGBO(90, 73, 106, 1), notchColor: const Color.fromRGBO(182, 143, 210, 1), removeMargins: false, bottomBarWidth: 500, durationInMilliSeconds: 300, bottomBarItems: [ BottomBarItem( inActiveItem: FaIcon(FontAwesomeIcons.house, size: barIconInactiveSize, color: unselectedBarColor), activeItem: FaIcon( FontAwesomeIcons.house, size: barIconActiveSize, color: selectedBarColor, ), itemLabelWidget: TextWidget( text: 'Home', size: barFontSize, bold: true, color: unselectedBarColor, footer: true, )), BottomBarItem( inActiveItem: FaIcon(FontAwesomeIcons.magnifyingGlass, size: barIconInactiveSize, color: unselectedBarColor), activeItem: Icon(FontAwesomeIcons.magnifyingGlass, size: barIconActiveSize, color: selectedBarColor), itemLabelWidget: TextWidget( text: 'Search', size: barFontSize, bold: true, color: unselectedBarColor, footer: true, ), ), BottomBarItem( inActiveItem: FaIcon(FontAwesomeIcons.cartShopping, size: barIconInactiveSize, color: unselectedBarColor), activeItem: FaIcon(FontAwesomeIcons.cartShopping, size: barIconActiveSize, color: selectedBarColor), itemLabelWidget: TextWidget( text: 'Cart', size: barFontSize, bold: true, color: unselectedBarColor, footer: true, ), ), BottomBarItem( inActiveItem: Icon(Icons.person, size: barIconInactiveSize, color: unselectedBarColor), activeItem: Icon(Icons.person, size: barIconActiveSize, color: selectedBarColor), itemLabelWidget: TextWidget( text: 'Profile', size: barFontSize, bold: true, color: unselectedBarColor, footer: true, ), ), ], onTap: (index) { _pageController.jumpToPage(index); }, ))); } }