Flutter,如何在Flutter中制作打开抽屉的按钮

问题描述 投票:0回答:1

我尝试制作一个按钮来打开抽屉,但我不能,这是我第一次使用 flutter

我的运行界面

Flutter UI

  return Scaffold(

  drawer: Drawer(),
  body: Column(
    children: <Widget>[
      ClipPath(
        clipper: MyClipper(),
        child: Container(
          height: 350,
          width: double.infinity,
          decoration: BoxDecoration(
            gradient: LinearGradient(
                begin: Alignment.topRight,
                end: Alignment.bottomLeft,
                colors: [
                  Color(0xFF3383CD),
                  Color(0xFF11429F),
                ]),
          ),
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.start,
            children: <Widget>[
              const SizedBox(height: 12),
              IconButton(
                icon: const Icon(
                  Icons.add, size: 18,
                  color: Colors.white,
                  ),
                onPressed: () {
                  Scaffold.of(context).openDrawer();
                },
              ),
flutter flutter-layout flutter-web flutter-animation flutter-test
1个回答
6
投票

最好的方法是使用 GlobalKey。

  1. 为您的小部件定义 ScaffoldState 的 GlobalKey。

    GlobalKey<ScaffoldState> scaffolKey = GlobalKey<ScaffoldState>();

  2. 将此键分配给脚手架。

Scaffold( key: scaffoldKey, ....)

  1. 使用此键从按钮的 onPressed 调用中调用 Opendrawer。

FlatButton(onPressed: () { scaffoldKey.currentState.openDrawer(); })

© www.soinside.com 2019 - 2024. All rights reserved.