flutter - 上下文弹出后的模态底页
问题描述
这ListTile
是在构建方法内的模态底部表中。它首先关闭当前的底部工作表。然后它在点击时显示一个模态底部表。
它确实有效。
但我的困惑是它不应该对已经弹出的上下文产生错误吗?
ListTile(
title: Text('Test'),
onTap: () {
Navigator.of(context).pop(); // Dismiss current bottom sheet
showModalBottomSheet( // Show new bottom sheet
context: context, // Using the same popped context?
builder: (context) {
return Container(
child: Text('test test'),
);
},
);
},
),
解决方案
这context
属于build(BuildContext context)
您的包装小部件的方法。当小部件保持原位时,上下文是有效的。
如果您对它的工作原理感兴趣:当您调用 时,它会从该上下文开始Navigator.of(context)
沿着树向上查找最近的小部件。Navigator
当您显示新的底页时,它也会这样做。所以任何上下文都可以,只要它在 current Navigator
.
推荐阅读
- python - 有没有办法像 tableau 透视数据一样在 python 中透视/转置数据?
- r - R中嵌套巨大列表的有效汇总统计
- python - 如何获取“描述”中匹配的字符串值
- typescript - 打字稿 - 将 array.map 转换为数组
- autodesk-forge - Forge vuer 不渲染 revit 模型
- python - Geopy reverse 返回“city”、“district”和“borough”的键错误,尽管它位于 JSON 响应对象中
- sql - 使用 T-SQL 将 JSON 格式的数据导出到 SQL 的最佳方法是什么?
- docker - 在 Windows 10 + WSL2 上运行 nvidia-docker
- excel - 如何在excel VBA中使用匹配大小写
- python - 尝试在 python 中加载 bmp 图像时,数组列的顺序未对齐