返回页面时记住 bottomNavigation bar 的状态 flutter

Remember the state of bottomNavigation bar when back to a page flutter

main_activity.dart中,有4个底部导航栏,分别命名为A、B、C、D。

main_activity.dart

class MainPage extends StatefulWidget {
  static const ROUTE = '/mainPage';

  @override
  State<StatefulWidget> createState() => _MainPageState();
}

class _MainPageState extends State<MainPage> {
  int _selectedIndex = 2;
  final _tabs = [
    A(),
    B(),
    C(),
    D(),
  ];

  @override
  Widget build(BuildContext context) {
    return WillPopScope(
      child: Scaffold(
        body: _tabs[_selectedIndex],
        bottomNavigationBar: BottomNavigationBar(
          type: BottomNavigationBarType.fixed,
          currentIndex: _selectedIndex,
          items: [
           ...
          ],
          onTap: (index) => setState(() {
            _selectedIndex = index;
          }),
        ),
      ),
       onWillPop: () => _requestPop(context),
    );
  }
}

最初它将在选项卡 C 中打开页面。当我单击选项卡 B 时,它将显示包含浮动操作按钮的 B 页面。单击浮动操作按钮时,将调用 add_B.dart。我的问题是当我单击 add_B.dart 中的后退按钮时,它将返回到 main_activity 并打开选项卡 C 页面。我怎样才能让它打开标签页 B 页面?

add_B.dart

onWillPop: (){
        _backToPreviousPage(context);
      },

 void _backToPreviousPage(BuildContext context) {
    Navigator.of(context).pushReplacementNamed(MainPage.ROUTE);
  }

您可以创建 global.dart 文件并在其中声明 int _selectedIndex = 2; 如果您将 _selectedIndex 设置为某个值,则在您使用它时导入该文件,该值将在整个应用程序中与您一起保存。