![](/img/trans.png)
[英]How to fix "A dismissed Dismissible widget is still part of the tree." error in flutter
[英]How to fix 'A dismissed Dismissible widget is still part of the tree.' in flutter
我显示CupertinoPopupSurface
并使用Dismissible
小部件通过手势关闭对话框。 当我向下滑动时,我调用Navigator.of(context).pop();
关闭对话框并返回到上一个屏幕,但我收到错误消息,提示Dismissible
仍然是树的一部分。
我尝试提供唯一键Dismissible(key: UniqueKey(), ...)
但它仍然无法正常工作。
CupertinoPopupSurface(
isSurfacePainted: false,
child: Container(
padding: const EdgeInsets.only(top: 100),
child: Dismissible(
key: UniqueKey(),
direction: DismissDirection.down,
onDismissed: (direction) {
Navigator.of(context).pop();
},
child: Container(
decoration: BoxDecoration(
borderRadius:
BorderRadius.vertical(top: Radius.circular(40)),
),
child: ZoneFilter(
visit: visit, accountsViewModel: accountsViewModel)),
),
),
);
我想打电话给Navigator.of(context).pop();
并摆脱 Dismissible 小部件。
您的 Dismissible 小部件在您的 Popup 内,而不是应该在它周围。 您可以通过将其更改为下面的代码来使其工作。 不过公平的警告,它会感觉很慢,因为只有在关闭 animation 完成后,对话框的深色背景才会消失。
return Dismissible(
key: UniqueKey(),
direction: DismissDirection.down,
onDismissed: (direction) => Navigator.of(context).pop();,
child: CupertinoPopupSurface(
isSurfacePainted: false,
child: Container(
padding: const EdgeInsets.only(top: 100),
child: Container(
decoration: BoxDecoration(
borderRadius:
BorderRadius.vertical(top: Radius.circular(40)),
),
child: ZoneFilter(
visit: visit, accountsViewModel: accountsViewModel)),
),
),
),
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.