|
import 'package:flutter/material.dart'; |
|
|
|
void main() => runApp(const MyApp()); |
|
|
|
class MyApp extends StatelessWidget { |
|
const MyApp({Key? key}) : super(key: key); |
|
|
|
static const String _title = 'Flutter Code Sample'; |
|
|
|
@override |
|
Widget build(BuildContext context) { |
|
return const MaterialApp( |
|
title: _title, |
|
home: MyStatefulWidget(), |
|
); |
|
} |
|
} |
|
|
|
class MyStatefulWidget extends StatefulWidget { |
|
const MyStatefulWidget({Key? key}) : super(key: key); |
|
|
|
@override |
|
State<MyStatefulWidget> createState() => _MyStatefulWidgetState(); |
|
} |
|
|
|
class _MyStatefulWidgetState extends State<MyStatefulWidget> { |
|
int _selectedIndex = 0; |
|
static const TextStyle optionStyle = |
|
TextStyle(fontSize: 30, fontWeight: FontWeight.bold); |
|
static const List<Widget> _widgetOptions = <Widget>[ |
|
PageOne(), |
|
Text( |
|
'Index 1: Business', |
|
style: optionStyle, |
|
), |
|
Text( |
|
'Index 2: School', |
|
style: optionStyle, |
|
), |
|
Text( |
|
'Index 3: Settings', |
|
style: optionStyle, |
|
), |
|
]; |
|
|
|
void _onItemTapped(int index) { |
|
setState(() { |
|
_selectedIndex = index; |
|
}); |
|
} |
|
|
|
@override |
|
Widget build(BuildContext context) { |
|
return Scaffold( |
|
appBar: AppBar( |
|
title: const Text('BottomNavigationBar Sample'), |
|
), |
|
body: Center( |
|
child: _widgetOptions.elementAt(_selectedIndex), |
|
), |
|
bottomNavigationBar: BottomNavigationBar( |
|
items: const <BottomNavigationBarItem>[ |
|
BottomNavigationBarItem( |
|
icon: Icon(Icons.home), |
|
label: 'Home', |
|
backgroundColor: Colors.red, |
|
), |
|
BottomNavigationBarItem( |
|
icon: Icon(Icons.business), |
|
label: 'Business', |
|
backgroundColor: Colors.green, |
|
), |
|
BottomNavigationBarItem( |
|
icon: Icon(Icons.school), |
|
label: 'School', |
|
backgroundColor: Colors.purple, |
|
), |
|
BottomNavigationBarItem( |
|
icon: Icon(Icons.settings), |
|
label: 'Settings', |
|
backgroundColor: Colors.pink, |
|
), |
|
], |
|
currentIndex: _selectedIndex, |
|
selectedItemColor: Colors.amber[800], |
|
onTap: _onItemTapped, |
|
), |
|
); |
|
} |
|
} |
|
|
|
class PageOne extends StatelessWidget { |
|
const PageOne(); |
|
@override |
|
Widget build(BuildContext context) { |
|
return ListView.builder( |
|
itemBuilder: (context, index) { |
|
return Text('$index'); |
|
} |
|
); |
|
} |
|
} |