【问题标题】:Add a main drawer to a button in flutter将主抽屉添加到颤动的按钮
【发布时间】:2021-02-17 12:18:39
【问题描述】:

我是 Flutter 新手,我需要将应用程序的主抽屉添加到一个按钮,如下图所示(这是应用程序 UI 的上半部分)

将主抽屉应用到按钮而不是通常将其分配给应用栏的任何想法。 (此移动应用没有应用栏)

  @override
  Widget build(BuildContext context) {
    var mediaQuery = MediaQuery.of(context);
    return Scaffold(
      key: scaffoldKey,
      body: Stack(
        children: <Widget>[
          _buildWidgetAlbumCover(mediaQuery),
           getMainContentWidget(mediaQuery),
          _buildWidgetMenu(mediaQuery),
          _buildWidgetFloatingActionButton(mediaQuery),
            Drawer(
              child: ListView(
                padding: EdgeInsets.zero,
                children: <Widget>[
                  DrawerHeader(
                    child: Text('Drawer Header'),
                    decoration: BoxDecoration(
                      color: Colors.blue,
                    ),
                  ),
                  ListTile(
                    title: Text('Item 1'),
                    onTap: () {
                    },
                  ),
                  ListTile(
                    title: Text('Item 2'),
                    onTap: () {
                    },
                  ),
                ],
              ),
            ),
        ],
      ),
    );
  }

  Widget _buildWidgetMenu(MediaQueryData mediaQuery) {
    return Padding(
      padding: EdgeInsets.only(
        left: 2.0,
        top: mediaQuery.padding.top + 2.0,

      ),
      child: Row(
        mainAxisAlignment: MainAxisAlignment.spaceBetween,
        children: <Widget>[
          IconButton(
            icon: Icon(
              Icons.menu,
              color: Colors.white,
              size: 25,
            ),
            padding: EdgeInsets.all(2.0),
//            onPressed: () => scaffoldKey.currentState.openDrawer(),
          ),
        ],
      ),
    );
  }

enter image description here 这是我在获得此代码后得到的输出。这个抽屉甚至不能改变,或者它是固定的。我想要也附加到 _buildWidgetMenu 而不是应用栏抽屉的普通抽屉。

【问题讨论】:

  • 总是显示一些代码
  • 告诉我们你到目前为止的尝试。
  • 添加了我目前尝试过的代码 sn-ps @Ashok

标签: flutter flutter-layout flutter-dependencies


【解决方案1】:

如果您使用的是 sacffold,它有一个可以使用的抽屉属性,例如 cookbook

 return Scaffold(
  appBar: AppBar(title: Text(title)),
  body: Center(child: Text('My Page!')),
  drawer: Drawer(...

通过点击按钮打开您的抽屉

 var scaffoldKey = GlobalKey<ScaffoldState>();
//required key 
     Scaffold(
        key: scaffoldKey,
        drawer: new Drawer(
          child: new ListView(
            padding: EdgeInsets.zero,...

             body:Center(..
                       IconButton(
                icon: Icon(Icons.menu),
//open drawer
                onPressed: () => scaffoldKey.currentState.openDrawer(),
          ),

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-11
    • 2020-09-26
    • 2021-08-26
    • 2019-12-19
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    相关资源
    最近更新 更多