0

我在颤振中有BottomNavigationBar,并为每个选项卡调用了单独的小部件。例如,我在那个重定向到新屏幕的小部件中有按钮,我希望 BottomNavigationBar 也应该保留在新屏幕中。我检查了几篇文章,但无法理解。下面是 BottomTabNavigationBar 的代码

import 'package:flutter/material.dart';
import 'package:timeout_dubai/fragments/HomeFragment.dart';
import 'package:timeout_dubai/fragments/MtTimeFragment.dart';
import 'package:timeout_dubai/fragments/MyLocFragment.dart';
import 'package:timeout_dubai/fragments/ThingsLoveFragment.dart';

class LoginScreen extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return _HomeState();
  }
}

class _HomeState extends State<LoginScreen> {
  int _currentIndex = 0;

  GlobalKey globalKey = new GlobalKey(debugLabel: 'btm_app_bar');

  final List<Widget> _children = [
      new HomeFragment(),
      new ThingsLoveFragment(),
      new MyLocFragment(),
      new MyTimeFragment()

  ];

  @override
  Widget build(BuildContext context) {
    return Scaffold(

      body: _children[_currentIndex],
      bottomNavigationBar: BottomNavigationBar(
        type: BottomNavigationBarType.fixed,
        onTap: onTabTapped,
        key: globalKey,
        currentIndex: _currentIndex,
        items: [
          BottomNavigationBarItem(
            icon: Icon(Icons.home,),
            title: Text('Home'),
          ),
          BottomNavigationBarItem(
            icon: Icon(Icons.favorite),
            title: Text('Things I Love'),
          ),
          BottomNavigationBarItem(
            icon: Icon(Icons.location_on),
            title: Text('My Locations'),
          ),
          BottomNavigationBarItem(
              icon: Icon(Icons.person),
              title: Text('My Time Out')
          ),

        ],
      ),
    );
  }

  void onTabTapped(int index) {
    print("Index $index");
    setState(() {
      _currentIndex = index;
    });

  }
}
4

0 回答 0