【问题标题】:Remove App Bar Title from Navigation Drawer in Flutter?从 Flutter 的导航抽屉中删除应用栏标题?
【发布时间】:2019-01-09 10:39:03
【问题描述】:

我在 Flutter 中创建了一个导航抽屉。

来源可在此处获得 - https://github.com/deadcoder0904/flutter_navigation_drawer

看起来像这样 -

首屏

当我点击按钮时,它转到

第二屏

当我点击按钮时,它转到

标签屏幕

当我点击First Screen 上的汉堡图标时,它会转到

抽屉屏幕

现在,当我单击抽屉屏幕上的第二个列表项时,我会看到这样的第二个屏幕

相关代码在navigation_drawer.dart 中,看起来像 -

class NavigationDrawer extends StatefulWidget {
  _NavigationDrawerState createState() => _NavigationDrawerState();
}

class _NavigationDrawerState extends State<NavigationDrawer> {
  int _selectionIndex = 0;
  final drawerItems = [
    DrawerItem("First Screen", Icons.looks_one),
    DrawerItem("Second Screen", Icons.looks_two),
    DrawerItem("Tabs", Icons.tab),
  ];

  _getDrawerItemScreen(int pos) {
    switch (pos) {
      case 1:
        return SecondScreen();
      case 2:
        return Tabs();
      default:
        return FirstScreen();
    }
  }

  _onSelectItem(int index) {
    setState(() {
      _selectionIndex = index;
      _getDrawerItemScreen(_selectionIndex);
    });
    Navigator.of(context).pop();
  }

  @override
  Widget build(BuildContext context) {
    List<Widget> drawerOptions = [];
    for (var i = 0; i < drawerItems.length; i++) {
      var d = drawerItems[i];
      drawerOptions.add(ListTile(
        leading: Icon(d.icon),
        title: Text(
          d.title,
          style: TextStyle(fontSize: 18.0, fontWeight: FontWeight.w400),
        ),
        selected: i == _selectionIndex,
        onTap: () => _onSelectItem(i),
      ));
    }

    return Scaffold(
      appBar: AppBar(
        title: Text('First Screen'),
      ),
      drawer: Drawer(
        child: Column(
          children: <Widget>[
            UserAccountsDrawerHeader(
              accountName: Text('Akshay Kadam (A2K)'),
              accountEmail: Text('a2k@gmail.com'),
            ),
            Column(
              children: drawerOptions,
            ),
          ],
        ),
      ),
      body: _getDrawerItemScreen(_selectionIndex),
    );
  }
}

如何获得没有Hamburger IconFirst Screen 标题的第二个屏幕?

【问题讨论】:

    标签: dart flutter navigation-drawer


    【解决方案1】:

    首先,更改您的代码以设置主页

    body: _getDrawerItemScreen(_selectionIndex),
    

    body: FirstScreen(),
    

    其次,

    _onSelectItem(int index) {
        setState(() {
          _selectionIndex = index;
          _getDrawerItemScreen(_selectionIndex);
        });
        Navigator.pushReplacement(
          context,
          MaterialPageRoute(
            builder: (context) => _getDrawerItemScreen(_selectionIndex),
          ),
        );
      }
    

    【讨论】:

    • 它可以工作,但它缺少一个后退按钮(汉堡一个)。有什么想法吗?
    • 意思是没找到你?在哪个屏幕上缺少返回按钮?
    • 通过抽屉点击Second ScreenTabs后,由于使用pushReplacement而没有返回按钮
    • 哦,是的!您必须在左侧抽屉中设置的每个屏幕上设置您的抽屉 (code)
    • 好的,所以我将 pushReplacement 更改为 push 并将 switch..case default 大小写更改为 NavigationDrawer() 并按预期完美运行。非常感谢你帮助我。最后一次编辑帖子:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-22
    • 2013-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-29
    相关资源
    最近更新 更多