flutter - 在其他页面打开抽屉

标签 flutter drawer

我的抽屉位于我的 main.dart 文件中。我想用另一页打开抽屉。当然 Scaffold.of(context).openDrawer();没有工作。但我不知道。

最佳答案

像这样创建一个公共(public)抽屉:

import 'package:flutter/widgets.dart';

class PublicDrawer extends StatefulWidget {
  PublicDrawer({Key key}) : super(key: key);

  @override
  _PublicDrawerState createState() => _PublicDrawerState();
}

class _PublicDrawerState extends State<PublicDrawer> {
  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Container();
  }
}

在您的所有其他页面上,使用脚手架来实现您的抽屉:

import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:~~~~~~~/Widgets/drawer.dart';

class ProfilePage extends StatefulWidget {
  ProfilePage({Key key}) : super(key: key);

  @override
  _ProfilePageState createState() => _ProfilePageState();
}

class _ProfilePageState extends State<ProfilePage> {
  @override
  Widget build(BuildContext context) {
    return SafeArea(
      child: Scaffold(
        drawer: PublicDrawer(), <----
        body: Container(),
      ),
    );
  }
}

关于flutter - 在其他页面打开抽屉,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62486027/

相关文章:

Android: "extends BaseActivity"没有执行 BaseActivity 的方法

ios - 使用 MMDrawerConroller 如何禁用旋转是一些 ViewControllers?

dart - 使用 Future.delayed 时测试中断

git - Flutter 的 pubspec.yaml 版本更改自动提交标记

android - Android-MenuDrawer 编译错误

reactjs - 使用 Material-UI Drawer 添加可折叠功能

swift - 如何在 Flutter 中实现 3D Secure(通过 Visa/MasterCard SecureCode 验证)?

flutter - 是否可以在Flutter中为IOS和ANDROID构建系统范围的自定义键盘?

android - NoSuchMethodError : The method 'ancestorStateOfType' was called on null with await and async method