![](/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.