企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
[TOC] > [参考](https://juejin.cn/post/7230597098848600119) ## 概述 由于 flutter 通过bottomNavigationBar 切换页面时,会重新渲染页面通过 IndexedStack,优化 ``` import 'package:digital_filling/pages/bottom_bar.dart'; import 'package:digital_filling/pages/class_page.dart'; import 'package:digital_filling/pages/home_page.dart'; import 'package:digital_filling/pages/mine_page.dart'; import 'package:digital_filling/pages/paint_page.dart'; import 'package:flutter/material.dart'; import '../common/size_config.dart'; class RootPage extends StatefulWidget { const RootPage({Key? key}) : super(key: key); @override State<RootPage> createState() => _RootPageState(); } class _RootPageState extends State<RootPage> { final List<Widget> _pageList = [ const HomePage(), const ClassPage(), const PaintPage(), const MinePage() ]; int _selectIndex = 0; @override void initState() { // TODO: implement initState super.initState(); } @override Widget build(BuildContext context) { SizeConfig.init(context); return Scaffold( body: IndexedStack( index: _selectIndex, children: _pageList, ), bottomNavigationBar: Theme( data: ThemeData( canvasColor: const Color(0xfff6f6fb), splashColor: Colors.transparent, highlightColor: Colors.transparent, ), child: WaterDropBottomNavigationBar(onUpdateIndex: (index) { setState(() { _selectIndex = index; }); }))); } } ```