bottom nav bar
add an index to the bottom nav bar that can be passed to a route in order to navigate to that screenunknown
plain_text
3 years ago
3.3 kB
2
Indexable
import 'dart:ui'; import 'package:anime_quiz/components/appbar.dart'; import 'package:anime_quiz/components/quizDrawer.dart'; import 'package:anime_quiz/screens/newsScreen/NewsScreen.dart'; import 'package:anime_quiz/screens/homeScreen/homeScreen.dart'; import 'package:anime_quiz/screens/quizScreens/quizScreen.dart'; import 'package:anime_quiz/utilities/constants.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; final _scaffoldKey = GlobalKey<ScaffoldState>(); class LayOutScreen extends StatefulWidget { static const String id = "layOutScreen"; final int selectedIndex; LayOutScreen({this.selectedIndex}); @override _LayOutScreenState createState() => _LayOutScreenState(); } class _LayOutScreenState extends State<LayOutScreen> { // int fi_currentIndex = 0; int _selectedIndex = 1; String _title; static const List<Widget> _widgetOptions = <Widget>[ QuizScreen(), HomeScreen(), NewsScreen(), ]; @override initState(){ _selectedIndex = widget.selectedIndex; _title = 'Home'; super.initState(); } void _onItemTapped(int index) { setState(() { _selectedIndex = index; switch(index) { case 0: { _title = 'Anime Quiz'; } break; case 1: { _title = 'Home'; } break; case 2: { _title = 'Anime News'; } break; } }); } @override Widget build(BuildContext context) { return Scaffold( key: _scaffoldKey, resizeToAvoidBottomInset: false, resizeToAvoidBottomPadding: false, appBar: PreferredSize( preferredSize: Size.fromHeight(kH50), child: AppBarAQ( title: _title, onPress: () => _scaffoldKey.currentState.openDrawer(), leadIcon: 'assets/icons/icons8-naruto-50.png', actionIcon: null, ), ), bottomNavigationBar: SizedBox( height: 52, child: Container( height: 40, child: BottomNavigationBar( backgroundColor: kWhiteColor, unselectedItemColor: kGreyColor, selectedIconTheme: IconThemeData(), // showUnselectedLabels: false, items: <BottomNavigationBarItem>[ BottomNavigationBarItem( icon: SvgPicture.asset( 'assets/icons/shuriken2.svg', width: kH20), label: 'Quiz', ), BottomNavigationBarItem( icon: SvgPicture.asset( 'assets/icons/icons8-naruto-sign (2).svg', width: kH20), label: 'Home', ), BottomNavigationBarItem( icon: SvgPicture.asset( 'assets/icons/scroll2.svg', width: kH20), label: 'News', ), ], currentIndex: _selectedIndex, selectedItemColor: kPrimaryColor, onTap: _onItemTapped, ), ), ), drawer: QuizDrawer(), // body: _widgetOptions.elementAt(_selectedIndex), body: IndexedStack( index: _selectedIndex, children: [ QuizScreen(), HomeScreen(), NewsScreen(), ], ), ); } }
Editor is loading...