Flutter-有没有办法仅使用IconButton(而不创建应用栏)来打开抽屉?

时间:2019-04-15 22:16:53

标签: dart flutter

我正在尝试使用可以在应用页面上打开抽屉的IconButton,因此当我点击图标按钮时,我希望看到抽屉。我一直在寻找一种在线执行此操作的方法,但是似乎只有两种解决方案:我可以使用应用程序栏将IconButton放入其中,也可以尝试浮动操作按钮。但是它们不是我想要的,我只希望使用IconButton打开抽屉。有可能吗?

1 个答案:

答案 0 :(得分:0)

是的,您可以通过 IconButton 轻松打开抽屉,而无需使用 appBar 。 您需要像使用_scaffoldKey一样使用Key并使用 _scaffoldKey.currentState.openDrawer()方法在 IconButton 小部件中打开抽屉。

class HomeState extends StatelessWidget {

final GlobalKey<ScaffoldState> _scaffoldKey =  GlobalKey<ScaffoldState>();

 @override
Widget build(BuildContext context) {

return Scaffold(
  key: _scaffoldKey,
         drawer: Drawer(
      child: ListView(
        children: <Widget>[
          ListTile(
            title: Text("Ttem 1"),
            trailing: Icon(Icons.arrow_forward),
          ),
          ListTile(
            title: Text("Item 2"),
            trailing: Icon(Icons.arrow_forward),
          ),
        ],
      ),
    ),
        body: ListView(
         children:[

    Container(
              margin: EdgeInsets.only(left: 15.0,top:100.0),
              child: IconButton(
                icon: Icon(Icons.menu),
                onPressed: () {
                  _scaffoldKey.currentState.openDrawer();
                },

              ),
            ),
            ]
        ),
            );}


   }