【问题标题】:Open drawer when using BackdropAppBar使用 BackdropAppBar 时打开抽屉
【发布时间】:2022-01-14 00:07:05
【问题描述】:

我正在使用 BackdropAppBar 包,并希望使用类似的东西以编程方式从前导图标打开抽屉:_scaffoldKey.currentState!.openDrawer();

但它不起作用 滑动时抽屉可见,但我想要一个菜单​​图标来激活它 也试过这个:Backdrop.of(context).scaffoldKey!.currentState!.openDrawer();

这是我的代码:

BackdropScaffold(
      key: _scaffoldKey,
      appBar: BackdropAppBar(
        title: Text('PRODUCTS'),
        centerTitle: true,
        actions: <Widget>[
          IconButton(
            icon: Icon(Icons.person),
            onPressed: () {
              print('open drawer');//text is printed
              //none of the following work
              _scaffoldKey.currentState!.openDrawer();
              Scaffold.of(context).openDrawer();
              Backdrop.of(context).scaffoldKey!.currentState!.openDrawer();
              } ,
          ),
          BackdropToggleButton(
            icon: AnimatedIcons.close_menu,
          ),
        ],
        drawer: MyDrawer(),
        frontLayer: pageBuilder(),
        backLayer: Center(
            child: Text("Back Layer"),
        ),

    ));
  }

_scaffoldKey 是这样定义的:

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

这是错误:

手势捕获的异常 处理手势时引发以下 _CastError: 用于空值的空检查运算符

当异常被抛出时,这是堆栈: #0 Backdrop.of (package:backdrop/src/scaffold.dart:29:61)

【问题讨论】:

    标签: flutter flutter-layout flutter-dependencies backdrop


    【解决方案1】:

    其实我找到了解决办法:

    key: _scaffoldKey 替换为scaffoldKey: _scaffoldKey

    希望这可以节省一些时间

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-04
      • 1970-01-01
      • 2022-12-11
      • 1970-01-01
      • 1970-01-01
      • 2018-05-06
      • 2014-06-12
      相关资源
      最近更新 更多