Drawer
是自定义小部件MenuDrawer()
.它位于BottomNavigationBar
号楼的同一层.这样做使得当打开新屏幕时,它们不显示BottomNavigationBar
,并且屏幕的整个表面是干净的.这是有效的,但只有当我try 从BottomNavigationBar
内的下一个小部件调用抽屉时.这可以使用Scaffold.of(context).openDrawer()
来完成
但是,如果我试图从嵌套在内部的小部件中调用Drawer,那么它就不起作用了.
我试着用我找到的所有小贴士,用builder
或Scaffold.of(context).openEndDrawer()
.context is lost
和抽屉好像打不开了.如果你有什么 idea ,或者我错过了什么,我将不胜感激.
@override
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: _systemBackButtonPressed,
child: Scaffold(
drawer: const MenuDrawer(),
bottomNavigationBar: BottomNavigationBar(...),
],
currentIndex: _selectedIndex,
onTap: _onItemTapped,
),
body: SafeArea(
top: false,
child: IndexedStack(
index: _selectedIndex,
children: const <Widget>[
MenuNavigator(),
CabinetNavigator(),
SearchNavigator(),
ContactsNavigator(),
CartNavigator()
],
),
),
),
);
}