| // Copyright 2014 The Flutter Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| import 'package:flutter/material.dart'; |
| |
| /// Flutter code sample for [NavigationBar]. |
| |
| void main() => runApp(const NavigationBarApp()); |
| |
| class NavigationBarApp extends StatelessWidget { |
| const NavigationBarApp({super.key}); |
| |
| @override |
| Widget build(BuildContext context) { |
| return const MaterialApp(home: NavigationExample()); |
| } |
| } |
| |
| class NavigationExample extends StatefulWidget { |
| const NavigationExample({super.key}); |
| |
| @override |
| State<NavigationExample> createState() => _NavigationExampleState(); |
| } |
| |
| class _NavigationExampleState extends State<NavigationExample> { |
| int currentPageIndex = 0; |
| |
| @override |
| Widget build(BuildContext context) { |
| return Scaffold( |
| bottomNavigationBar: NavigationBar( |
| onDestinationSelected: (int index) { |
| setState(() { |
| currentPageIndex = index; |
| }); |
| }, |
| selectedIndex: currentPageIndex, |
| destinations: const <Widget>[ |
| NavigationDestination( |
| icon: Icon(Icons.explore), |
| label: 'Explore', |
| ), |
| NavigationDestination( |
| icon: Icon(Icons.commute), |
| label: 'Commute', |
| ), |
| NavigationDestination( |
| selectedIcon: Icon(Icons.bookmark), |
| icon: Icon(Icons.bookmark_border), |
| label: 'Saved', |
| ), |
| ], |
| ), |
| body: <Widget>[ |
| Container( |
| color: Colors.red, |
| alignment: Alignment.center, |
| child: const Text('Page 1'), |
| ), |
| Container( |
| color: Colors.green, |
| alignment: Alignment.center, |
| child: const Text('Page 2'), |
| ), |
| Container( |
| color: Colors.blue, |
| alignment: Alignment.center, |
| child: const Text('Page 3'), |
| ), |
| ][currentPageIndex], |
| ); |
| } |
| } |