Untitled
unknown
dart
2 years ago
2.0 kB
5
Indexable
import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: MyHomePage(), ); } } class MyHomePage extends StatefulWidget { @override _MyHomePageState createState() => _MyHomePageState(); } class _MyHomePageState extends State<MyHomePage> { int _selectedIndex = 0; // Define your pages final List<Widget> _pages = [ HomePage(), SettingsPage(), // Add more pages as needed ]; @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Bottom Navigation Example'), ), body: _pages[_selectedIndex], // Show the selected page bottomNavigationBar: BottomNavigationBar( items: [ BottomNavigationBarItem( icon: Icon(Icons.home), label: 'Home', ), BottomNavigationBarItem( icon: Icon(Icons.settings), label: 'Settings', ), // Add more items as needed ], currentIndex: _selectedIndex, onTap: (index) { // Handle item tap _onItemTapped(index); }, ), ); } void _onItemTapped(int index) { // Use Navigator.push to navigate to the selected page Navigator.push( context, MaterialPageRoute( builder: (context) => _pages[index], ), ); // Update the selected index to highlight the selected tab setState(() { _selectedIndex = index; }); } } class HomePage extends StatelessWidget { @override Widget build(BuildContext context) { return Container( child: Center( child: Text('Home Page'), ), ); } } class SettingsPage extends StatelessWidget { @override Widget build(BuildContext context) { return Container( child: Center( child: Text('Settings Page'), ), ); } }
Editor is loading...
Leave a Comment