首页 > 解决方案 > 上下文弹出后的模态底页

问题描述

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'),
            );
          },
        );
      },
    ),

标签: flutter

解决方案


context属于build(BuildContext context)您的包装小部件的方法。当小部件保持原位时,上下文是有效的。

如果您对它的工作原理感兴趣:当您调用 时,它会从该上下文开始Navigator.of(context)沿着树向上查找最近的小部件。Navigator当您显示新的底页时,它也会这样做。所以任何上下文都可以,只要它在 current Navigator.


推荐阅读