在另一个页面打开抽屉
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(),
),
);
}
}
我的抽屉在我的 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(),
),
);
}
}