Skip to content
Snippets Groups Projects
bottom_nav_bar.dart 1.86 KiB
Newer Older
  • Learn to ignore specific revisions
  • import 'package:easy_localization/easy_localization.dart';
    import 'package:flutter/material.dart';
    import 'package:flutter_bloc/flutter_bloc.dart';
    import 'package:ionicons/ionicons.dart';
    
    import '../../cubit/bottom_nav_cubit.dart';
    
    class BottomNavBar extends StatelessWidget {
      const BottomNavBar({super.key});
    
      @override
      Widget build(BuildContext context) {
        return Card(
          margin: const EdgeInsets.only(top: 1, right: 4, left: 4),
          elevation: 4,
          shadowColor: Theme.of(context).colorScheme.shadow,
          color: Theme.of(context).colorScheme.surfaceVariant,
          shape: const RoundedRectangleBorder(
            borderRadius: BorderRadius.only(
              topLeft: Radius.circular(16),
              topRight: Radius.circular(16),
            ),
          ),
    
          child: BlocBuilder<BottomNavCubit, int>(
            builder: (BuildContext context, int state) {
              return BottomNavigationBar(
                currentIndex: state,
                onTap: (int index) => context.read<BottomNavCubit>().updateIndex(index),
                type: BottomNavigationBarType.fixed,
                elevation: 0,
                backgroundColor: Colors.transparent,
                selectedItemColor: Theme.of(context).colorScheme.primary,
                unselectedItemColor: Theme.of(context).textTheme.bodySmall!.color,
                items: <BottomNavigationBarItem>[
                  BottomNavigationBarItem(
                    icon: const Icon(Ionicons.home_outline),
                    label: tr('bottom_nav_home'),
                  ),
                  BottomNavigationBarItem(
                    icon: const Icon(Ionicons.star_outline),
                    label: tr('bottom_nav_discoveries'),
                  ),
                  BottomNavigationBarItem(
                    icon: const Icon(Ionicons.bar_chart_outline),
                    label: tr('bottom_nav_repartition'),
                  ),
                ],
              );
            },
          ),