我是flutter新手,我想创建一个带有抽屉和两个屏幕的web应用程序。下面是我的main
函数和应用程序用户界面的根:
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Tapchi Admin Panel',
theme: ThemeData.dark().copyWith(
scaffoldBackgroundColor: bgColor,
textTheme: GoogleFonts.poppinsTextTheme(Theme
.of(context)
.textTheme)
.apply(bodyColor: Colors.white),
canvasColor: secondaryColor,
),
home: const DashboardScreen()
);
}
}
这是我的DashboardScreen
:
class DashboardScreen extends StatelessWidget {
const DashboardScreen({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
);
}
}
这是我的SideMenu
:
class SideMenu extends StatelessWidget {
const SideMenu({super.key});
@override
Widget build(BuildContext context) {
return Drawer(
child: ListView(
children: [
const DrawerHeader(child: Icon(Icons.android)),
SideMenuItem(
title: 'dashboard',
leadingIcon: Icons.dashboard,
press: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => const DashboardScreen()));
}),
SideMenuItem(
title: 'users',
leadingIcon: Icons.person,
press: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => const UserScreen()));
}),
],
),
);
}
}
我的问题是,当我导航到DashboardScreen
我失去了AppBar
和Drawer
,但我想有他们的整个应用程序!.在Android中,我们可以通过使用NavHost
解决这个问题.我怎么能有一个Drawer
为我的整个应用程序.顺便说一句,我正在开发一个webApp
1条答案
按热度按时间zpgglvta1#
好的,我使用了两个
MaterialApp
小部件和一个全局变量navigatorKey
来完成这个任务。