在Flutter中将endDrawer移动到底部navigationbar上方



我们有一个endDrawer在后面显示bottomNavigationBar。我们希望在导航栏中显示over

我们可能需要重构,但是现在,我们有一个像这样的主脚手架:

return Scaffold(
key: shellKey,
drawer: const MainDrawer(),
body: child,
extendBody: true,
bottomNavigationBar: const ExpandingBottomDrawer(),
);

router通过

child推到支架上
ShellRoute(builder: (context, state, child) => AppLayout(child: child),...)

children也是具有独立endDrawersScaffolds。在孩子们,我通过_key.currentState!.openEndDrawer(),触发打开endDrawer。问题是endDrawer明显落后于bottomNavigationBar。我明白,如果endDrawer是在主脚手架上,这可以修复,但应用程序不是这样设置的,这将是一个巨大的重构。如果没有重构,这可能吗?

谢谢! !

您可以使用另一个Scaffold小部件。

return Scaffold(
drawer: const Drawer(),
bottomNavigationBar: Container(
child: Text("Bottom navBar"),
),
body: Scaffold(
appBar: AppBar(),
drawer: const Drawer(),
),
);

可能有更好的方法来处理这个

最新更新