在另一个页面打开抽屉

Open drawer in another pages

我的抽屉在我的 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(),
      ),
    );
  }
}