如何关闭所有模态底板Flutter

vfwfrxfs  于 2023-05-29  发布在  Flutter
关注(0)|答案(2)|浏览(205)

我在我的应用程序中创建了一系列的模态底表。当我从A模态底部表单到B模态底部表单,然后A模态底部表单应该被关闭,我不知道如何实现这一点,当我使用navigator.pop时,然后它导航到A底部表单。

o0lyfsai

o0lyfsai1#

在进入B底部工作表之前,您应该调用Navigator.pop
示例:

InkWell(
            onTap: () {
              showModalBottomSheet(
                  context: context,
                  builder: (context) {
                    return InkWell(
                        onTap: () {
                          Navigator.of(context).pop();
                          showModalBottomSheet(
                              context: context,
                              builder: (context) {
                                return const Text("Bottom Sheet B");
                              });
                        },
                        child: const Text("Bottom Sheet A"));
                  });
            },
            child: const Text("Home"),
          ),
niknxzdl

niknxzdl2#

您可以在关闭时简单地返回工作表A的状态。基于打开的表B。
示例:

InkWell(
                      child: Text('Press me'),
                      onTap: () async {
                        final result = await showModalBottomSheet(
                          context: context,
                          builder: (context) => InkWell(
                            child: Text('Open SHeet B'),
                            onTap: () => Navigator.pop(context, true),
                          ),
                        );
                        print(result);
                        if (mounted && result == true) {
                          showModalBottomSheet(
                            context: context,
                            builder: (context) => InkWell(
                              child: Text('CLose SHeet B'),
                              onTap: () => Navigator.pop(context, true),
                            ),
                          );
                        }
                      },
                    ),

相关问题