flutter - 在flutter中关闭endDrawer后如何运行功能
问题描述
我有产品列表页面,我从中打开了包含购物车项目的 endDrawer。如果我删除购物车项目,它不会自动更新产品列表页面。如何在flutter中使用endDrawer中的.then函数?
解决方案
不幸的是,你不能只用 a 包裹你的结束抽屉DrawerController
并在它关闭或打开时获取回调,因为 Scaffold 确实为它自己制作了一个抽屉控制器并封装它,所以你不能修改它。
我能想到的唯一其他方法是将抽屉控制器放在主脚手架之外,或者Overlay
如果您熟悉这些方法,可以使用它来展示它。
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Stack(
children: <Widget>[
Positioned.fill(
child: Scaffold(
appBar: PreferredSize(
preferredSize: Size.fromHeight(kToolbarHeight),
child: UserAppBar(),
),
body: PostsPage(),
),
),
Positioned.fill(
child: DrawerController(
child: Drawer(
child: Column(),
),
drawerCallback: (open){
print(open);
},
alignment: DrawerAlignment.end,
),
),
],
),
);
}
}
推荐阅读
- kotlin - 在 LibGdx (Kotlin) 中设置 JUnit、Mockito
- ios - Flutter:IOS 到 IOS 广播信标不起作用
- c - 链接错误。也许订购有问题?
- ruby-on-rails - 在加载时通过控制器渲染远程部分
- python - 如何缩短此替换密码?
- php - 在 PHP 中对 MySQL 查询进行排序
- java - 将带有证书和密钥的 NodeJS 请求翻译成 Java
- css - 如何在 nextjs 中使用样式 jsx 标签设置组件图像的路径
- django-views - Twilio - 如何识别用户何时使用退出关键字回复并取消订阅?- Django Python
- ios - WKWebView 加载嵌入的电影会导致全屏播放