flutter3实现应用导航页面的切换
import 'package:flutter/material.dart'; void main() { runApp(const GoWaterMyApp()); } class GoWaterMyApp extends StatelessWidget { const GoWaterMyApp({super.key}); @override Widget build(BuildContext context) { return MaterialApp( title: 'GoWater', theme: ThemeData( colorScheme: ColorScheme.fromSeed( seedColor: Colors.lightBlue), useMaterial3: true, ), home: const MyHomePage(title: '桶装水自动配送系统'), ); } } class MyHomePage extends StatefulWidget { const MyHomePage({super.key, required this.title}); final String title; @override State<MyHomePage> createState() => _MyHomePageState(); } class _MyHomePageState extends State<MyHomePage> { late int _selectedIndex = 0; // 创建一组彩色的容器 static List<Widget> pages = <Widget>[ Container(color: Colors.grey), Container(color: Colors.green), Container(color: Colors.blue) ]; //彩色容器结束 @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( backgroundColor: Theme.of(context).colorScheme.inversePrimary, title: Text(widget.title), ), body: SafeArea( //child: Container(),//原始安全容器主要内容 child: pages[_selectedIndex], ), //导航开始 bottomNavigationBar: BottomNavigationBar( selectedItemColor: Colors.lightBlue, currentIndex: _selectedIndex, onTap: (index) => setState(() { _selectedIndex = index; }), items: const [ BottomNavigationBarItem( icon: Icon(Icons.list), label: '历史', ), BottomNavigationBarItem( icon: Icon(Icons.widgets), label: '订水', ), BottomNavigationBarItem( icon: Icon(Icons.settings), label: '自己', ), ], ), //导航结束 ); } }