Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 当我从屏幕内的屏幕导航时,“颤振导航抽屉”消失_Flutter_Navigation Drawer - Fatal编程技术网

Flutter 当我从屏幕内的屏幕导航时,“颤振导航抽屉”消失

Flutter 当我从屏幕内的屏幕导航时,“颤振导航抽屉”消失,flutter,navigation-drawer,Flutter,Navigation Drawer,当我点击抽屉项目(主页)时,它工作正常,我可以从主页屏幕的应用程序栏访问抽屉。现在的问题是当我从主页导航到另一个屏幕时(初学者计划), 抽屉不见了 Navdrawer.dart代码 初学者计划.省道代码 import'程序包:fitnessapp/screens/Navdrawer.dart'; 进口“包装:颤振/材料.省道”; 类初学者计划扩展StatefulWidget{ @凌驾 _初学者计划状态createState()=>\u初学者计划状态(); } 类(状态扩展状态){ @凌驾 小部件

当我点击抽屉项目(主页)时,它工作正常,我可以从主页屏幕的应用程序栏访问抽屉。现在的问题是当我从主页导航到另一个屏幕时(初学者计划), 抽屉不见了

Navdrawer.dart代码 初学者计划.省道代码
import'程序包:fitnessapp/screens/Navdrawer.dart';
进口“包装:颤振/材料.省道”;
类初学者计划扩展StatefulWidget{
@凌驾
_初学者计划状态createState()=>\u初学者计划状态();
}
类(状态扩展状态){
@凌驾
小部件构建(构建上下文){
返回脚手架(
正文:文本(“初学者计划”),
);
}
}

因为您尚未实现第二个屏幕的抽屉。使抽屉全局化或在第二个屏幕中也实现。因为您尚未在第二个屏幕中实现抽屉。在第二个屏幕中使抽屉为全局或同时实现。
import 'package:fitnessapp/components/constants.dart';
import 'package:fitnessapp/screens/NavPages/beginnerplan.dart';
import 'package:fitnessapp/screens/NavPages/running.dart';
import 'NavPages/homepage.dart';
import 'NavPages/profile.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:flutter/material.dart';

class DrawerItem {
  String title;
  IconData icon;
  DrawerItem(this.title, this.icon);
}

class navdrawer extends StatefulWidget {
  final drawerItems = [
    new DrawerItem("Home Page", Icons.home),
    new DrawerItem("Profile", Icons.account_circle),
    new DrawerItem("Running", Icons.directions_run),
  ];

  @override
  State<StatefulWidget> createState() {
    return new navdrawerState();
  }
}

class navdrawerState extends State<navdrawer> {
  int _selectedDrawerIndex = 0;


  navdrawerState();

  _getDrawerItemWidget(int pos) {
    switch (pos) {
      case 0:
        return new homepage();
      case 1:
        return new profilepage();
      case 2:
        return new RunningPage();
      default:
        return Container();
    }
  }

  onSelectItem(int index) {
    setState(() => _selectedDrawerIndex = index);
    Navigator.of(context).pop(); // close the drawer
  }

  @override
  Widget build(BuildContext context) {
    var drawerOptions = <Widget>[];
    for (var i = 0; i < widget.drawerItems.length; i++) {
      var d = widget.drawerItems[i];
      drawerOptions.add(new ListTile(
        leading: new Icon(d.icon),
        title: new Text(d.title),
        selected: i == _selectedDrawerIndex,
        onTap: () => onSelectItem(i),
      ));
    }

    return new Scaffold(
      appBar: new AppBar(
        // here we display the title corresponding to the fragment
        // you can instead choose to have a static title
        title: new Text(widget.drawerItems[_selectedDrawerIndex].title),
      ),
      drawer: new Drawer(
        child: Column(
          children: [
            Expanded(flex: 1, child: UserHeader()),
            Expanded(
              flex: 2,
              child: new Column(children: drawerOptions),
            )
          ],
        ),
      ),
      body: _getDrawerItemWidget(_selectedDrawerIndex),
    );
  }
}

class UserHeader extends StatelessWidget {
  const UserHeader({
    Key key,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Container(
      color: mainaccent,
      width: MediaQuery.of(context).size.width * 0.85,
      child: DrawerHeader(
        decoration: BoxDecoration(
            image: DecorationImage(
                image: AssetImage("images/minerva_tp.png"),
                fit: BoxFit.cover)),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.end,
          crossAxisAlignment: CrossAxisAlignment.stretch,
          children: <Widget>[
            SizedBox(
              height: 50,
            ),
            Text(
              "Shahroz Javed",
              style: TextStyle(color: Colors.white,fontSize: 20),
            ),
            Text(
              "shahrozjaved39@gmail.com",
              style: TextStyle(color: Colors.white,fontSize: 15),
            ),
          ],
        ),
      ),
    );
  }
}
ontap: () {
  Navigator.push(
  context,
  MaterialPageRoute(builder: (context) => beginnerplan()),
);
import 'package:fitnessapp/screens/Navdrawer.dart';
import 'package:flutter/material.dart';

class beginnerplan extends StatefulWidget {
  @override
  _beginnerplanState createState() => _beginnerplanState();
}

class _beginnerplanState extends State<beginnerplan> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Text("Beginner plan"),
    );
  }
}