при нажатии на элементы панели навигации, где страница должна перезагружаться каждый раз

#flutter #dart #navigationbar

Вопрос:

 [![First item in Navigation Bar(Red)][1]][1] [![when chilcked item in page red][1]][1] [![moving to Second item in Navigation Bar ][1]][1] [![Moving back to first item in Navigation Bar][1]][1]
 

Мне нужно, чтобы, когда панель навигации перемещается с первого элемента на второй и возвращается к первому элементу, она должна показывать первую страницу в первом элементе. Как я могу это сделать? при использовании нижней панели навигации панель навигации отображается только на одной странице и исчезает. Поэтому я воспользовался пакетом https://pub.dev/packages/persistent_bottom_nav_bar

Вот код, который я использовал:

 `import 'package:flutter/material.dart';
import 'package:persistent_bottom_nav_bar/persistent-tab-view.dart';

class NavigationScreen extends StatefulWidget {
  @override
  _NavigationScreenState createState() => _NavigationScreenState();
}

class _NavigationScreenState extends State<NavigationScreen> {
  late PersistentTabController _controller;
  int _currentIndex = 0;


  @override
  void initState() {
    super.initState();
    _controller = PersistentTabController(initialIndex: 0);
  }

  List<Widget> _buildScreens() {
    return [
      Red(),
      Green(),
      Yellow(),
    ];
  }

  List<PersistentBottomNavBarItem> _navBarsItems() {
    return [
      PersistentBottomNavBarItem(
        icon: NavBarIcon("Red.png"),
        title: ("Red"),
        activeColorPrimary:Colors.white,
        inactiveColorPrimary:Colors.teal,
      ),
      PersistentBottomNavBarItem(
        icon: NavBarIcon("Green.png"),
        title: ("Green"),
        activeColorPrimary:Colors.white,
        inactiveColorPrimary:Colors.teal,
      ),
      PersistentBottomNavBarItem(
        icon: NavBarIcon("Yellow.png"),
        title: ('Yellow'),
        activeColorPrimary:Colors.white,
        inactiveColorPrimary:Colors.teal,
      ),
    ];
  }

  @override
  Widget build(BuildContext context) {
    return SafeArea(
      child: Scaffold(
        body: Container(
          child: PersistentTabView(
            context,
            controller: _controller,
            screens: _buildScreens(),
            items: _navBarsItems(),
            onItemSelected: _onItemTapped,
            confineInSafeArea: true,
            backgroundColor: secondaryColor,
            handleAndroidBackButtonPress: true, // Default is true.
            resizeToAvoidBottomInset: true, // This needs to be true if you want to move up the screen when keyboard appears. Default is true.
            stateManagement: true, // Default is true.
            hideNavigationBarWhenKeyboardShows: true,
            popAllScreensOnTapOfSelectedTab: true,
            popActionScreens: PopActionScreensType.all,
            navBarStyle: NavBarStyle.simple,
          ),
        ),
      ),
    );
  }

  void _onItemTapped(int index) {
    setState(() {
      _currentIndex = index;
    });
  }
}
`