Technology31 กรกฎาคม 2564
Workshop: Flutter Auth Login #part6 Launcher.dart BottomNavigationBar

Loading...
visibility278 views

font_awesome_flutter
This will add a line like this to your package’s pubspec.yaml (and run an implicit dart pub get):
dependencies:
font_awesome_flutter: ^9.1.0
Now in your Launcher.dart , you can use:
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
class _LauncherState extends State {
int _selectedIndex = 0;
List _pageWidget = [
HomePage(),
ProfilePage(),
AboutPage()
];
List _menuBar = [
BottomNavigationBarItem(
icon: Icon(FontAwesomeIcons.home),
label: 'Home'
),
BottomNavigationBarItem(
icon: Icon(FontAwesomeIcons.userAlt),
label: 'Profile'
),
BottomNavigationBarItem(
icon: Icon(FontAwesomeIcons.infoCircle),
label: 'About'
),
];
void _onItemTapped(int index) {
setState(() {
_selectedIndex = index;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: _pageWidget.elementAt(_selectedIndex),
bottomNavigationBar: BottomNavigationBar(
items: _menuBar,
currentIndex: _selectedIndex,
selectedItemColor: Theme.of(context).primaryColor,
unselectedItemColor: Colors.grey,
onTap: _onItemTapped,
),
);
}
Run & Debug
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:flutter_workshoptest/pages/AboutPage.dart';
import 'package:flutter_workshoptest/pages/HomePage.dart';
import 'package:flutter_workshoptest/pages/ProfilePage.dart';
class Launcher extends StatefulWidget {
Launcher({Key? key}) : super(key: key);
@override
_LauncherState createState() => _LauncherState();
}
class _LauncherState extends State {
int _selectedIndex = 0;
List _pageWidget = ;
List _menuBar = ;
void _onItemTapped(int index) {
setState(() {
_selectedIndex = index;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: _pageWidget.elementAt(_selectedIndex),
bottomNavigationBar: BottomNavigationBar(
items: _menuBar,
currentIndex: _selectedIndex,
selectedItemColor: Theme.of(context).primaryColor,
unselectedItemColor: Colors.grey,
onTap: _onItemTapped,
),
);
}
}