Пропадает BottomNavigator при переходах по страницам

Изучаю flutter уже как неделю и не пойму, почему при переходах по страницам как-то странно работает навигация. Пример: у меня есть кнопка на главной странице, которая переносит на страницу с личными данными, при переходе обратно на главную, как и при переходе на нужную страницу у меня пропадает Bottom Navigato, а хочется, чтобы оставался. Bottom Navigator

import 'package:flutter/material.dart';
import 'package:flutter_application_1/constants.dart';
import 'package:flutter_application_1/pages/HomePage.dart';
import 'package:flutter_application_1/pages/ProfilePage.dart';

class BottomNavigator extends StatefulWidget {
  @override
  _BottomNavigatorState createState() => _BottomNavigatorState();
}

class _BottomNavigatorState extends State<BottomNavigator> {
  int _sectionIndex = 0;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: mainBackgroudColor,
      body: this.getBody(),
      bottomNavigationBar: BottomNavigationBar(
        type: BottomNavigationBarType.fixed,
        items: const <BottomNavigationBarItem>[
          BottomNavigationBarItem(
            icon: Icon(Icons.home_outlined),
            label: 'Home',
          ),
          BottomNavigationBarItem(
            icon: Icon(Icons.directions_run_outlined),
            label: 'Run',
          ),
          BottomNavigationBarItem(
            icon: Icon(
              Icons.group_outlined,
            ),
            label: 'Group',
          ),
          BottomNavigationBarItem(
            icon: Icon(Icons.person_outlined),
            label: 'Account',
          )
        ],
        currentIndex: _sectionIndex,
        selectedItemColor: Colors.red,
        unselectedItemColor: iconColor,
        showSelectedLabels: false,
        showUnselectedLabels: false,
        backgroundColor: backgroudColorBottomNavigation,
        iconSize: 32,
        onTap: (int index) {
          this.onTapHandler(index);
        },
      ),
    );
  }

  Widget getBody() {
    if (this._sectionIndex == 0) {
      return HomePage();
    } else {
      return ProfilePage();
    }
  }

  void onTapHandler(int index) {
    this.setState(() {
      this._sectionIndex = index;
    });
  }
}

Main

import 'package:flutter/material.dart';
import 'package:flutter_application_1/component/edit_profile_pages/EditProfilePage.dart';
import 'package:flutter_application_1/pages/FeedBackPage.dart';
import 'package:flutter_application_1/pages/HomePage.dart';
import 'package:flutter_application_1/pages/MyStarts.dart';
import 'package:flutter_application_1/pages/PostsInTheCommunityPage.dart';
import 'package:flutter_application_1/pages/ProfilePage.dart';
import 'navigation/BottomNavigation.dart';

void main() {
  runApp(MyApp());
}


class MyApp extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: BottomNavigator(),
      ),
      //initialRoute: '/homePage',
      routes: {
        '/homePage': (context) => HomePage(),
        '/testPage': (context) => TestPage()
      },
    );
  }
}

Страницы для перехода

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_application_1/component/widgets_for_profile/BackButton.dart';
import 'package:flutter_application_1/component/widgets_for_profile/CustomButton.dart';

class HomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.black,
      body: Center(
        child: MyCustomButton(
          Icons.person_outlined,
          'TEST',
          Icons.keyboard_arrow_right,
          route: '/testPage',
        ),
      ),
    );
  }
}

class TestPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.black,
      body: Center(child: CustomBackButton(nameRoute: '/homePage'))
    );
  }
}

И кнопки, в которых реализована переход по страницам (BackButton отличается от MyCustomButton, только иконками.

import 'package:flutter/material.dart';

import '../../constants.dart';

class CustomBackButton extends StatelessWidget {
  final String nameRoute;

  CustomBackButton({required this.nameRoute});

  @override
  Widget build(BuildContext context) {
    return IconButton(
      onPressed: () {
        Navigator.pushNamed(context, nameRoute);
      },
      icon: Icon(
        Icons.arrow_back,
        size: 26,
        color: iconColor,
      ),
    );
  }
}

Ответы (1 шт):

Автор решения: steind.VY

Решил проблему использовав виджет Cupertino вместо Material

→ Ссылка