【发布时间】:2021-05-24 13:09:59
【问题描述】:
在我创建的侧抽屉中,当用户点击任何链接时,用户转到该屏幕并且抽屉也关闭,这没有问题,同样当用户打开侧抽屉并按返回键时,抽屉关闭,这也是工作。
但是,假设用户点击了“我的个人资料”链接(或任何链接),然后如果用户从个人资料屏幕按返回键返回主屏幕(或在应用栏中使用返回键),用户会找到侧边抽屉在主屏幕上打开。然后任何一个用户都必须按返回键或点击屏幕上的任意位置来关闭抽屉。
最初,我的抽屉甚至没有在后按时关闭,我找到了这篇文章 [https://stackoverflow.com/q/60314156] 并实施了 WillPopScope() [实际上这对我有帮助to close drawer on backpress],但是我已经解释过的问题仍然没有通过 WillPopScope 解决。
请让我知道我必须做哪些更改才能实现此行为。
这就是我创建文件的方式: HomePage 具有 BottomNavigationDrawer,用户通过它进入购物页面(实际上标记为“主页”),这是用户看到侧抽屉的页面。因此,在上面解释我所说的主页时,我指的是用户导航到个人资料页面的购物页面。
class ShoppingPage extends StatefulWidget {
@override
_ShoppingPageState createState() => _ShoppingPageState();
}
class _ShoppingPageState extends State<ShoppingPage> {
GlobalKey<ScaffoldState> _key = new GlobalKey<ScaffoldState>();
@override
Widget build(BuildContext context) {
ThemeData getTheme = Theme.of(context);
return WillPopScope(
onWillPop: () async {
if (_key.currentState.isDrawerOpen) {
Navigator.of(context).pop();
return false;
}
return true;
},
child: Scaffold(
key: _key,
appBar: AppBar(
title: ,
elevation: 0,
),
drawer: CustomDrawer(),
body: SafeArea(
child: Container(
【问题讨论】:
-
你能分享你推到另一个屏幕的抽屉代码吗?
标签: flutter onbackpressed