1

我与ModalBottomSheet 合作,我喜欢这个包。但是,我在尝试在 ModalBottomSheet 中导航时遇到了问题。

这是一个ScreenVideo以便更好地理解。

如您所见,视图显示为 ModalBottomSheet。但是当弹出它时,它不是简单地解散到底部,而是弹出到带有 MaterialPage Pop 动画的某个空屏幕。

我更改了我的代码,以便可以在该 ModalBottomSheet 中使用 MaterialPageRoute-Animation 进行推送。在此之前,一切都按预期工作。

这是我的页面:

    class _AboutScreenState extends State<AboutScreen> {
  @override
  Widget build(BuildContext context) {
    return Material(
      color: AppColors.primary,
      child: Navigator(
        onGenerateRoute: (settings) => MaterialPageRoute(
          builder: (context2) => Builder(
            builder: (context) => CupertinoPageScaffold(
                backgroundColor: AppColors.secondary,
                resizeToAvoidBottomInset: false,
                child: SafeArea(
                  child: Padding(
                    padding: EdgeInsets.all(sidePadding),
                    child: Column(
                      crossAxisAlignment: CrossAxisAlignment.start,
                      children: [
                        Row(
                          mainAxisAlignment: MainAxisAlignment.end,
                          children: [
                            IconButtonWithExpandedTouchTarget(
                              onTapped: () {
                                Navigator.pop(context);
                              },
                              svgPath: 'assets/icons/down.svg',
                            ),
                          ],
                        ),
                        Text(
                          'About',
                          style: AppTextStyles.montserratH2SemiBold,
                        ),

                        ...

                        RoundedCornersTextButton(
                          title: 'Impressum',
                          onTap: () {
                            Navigator.pop(context);
                          },
                          textColor: AppColors.primary,
                          backgroundColor: AppColors.secondary,
                          borderColor: AppColors.primary,
                        ),
                      ],
                    ),
                  ),
                )),
          ),
        ),
      ),
    );
  }
}

我只是按照这个例子。我在这里想念什么?使用上面的代码,我可以按预期使用 MaterialPageRoute 动画推入 ModalSheet,但弹出第一个屏幕会带来问题......

如果您需要更多信息,请告诉我!任何帮助表示赞赏:)

4

2 回答 2

2

我认为您在弹出错误的上下文。该示例弹出rootContext,它来自层次结构中最顶层的小部件。您从 with 弹出context,在层次结构中的最低构建器中定义。

于 2021-12-14T22:47:20.517 回答
0

我相信您使用的上下文不正确。rootContext 来自层次结构中最顶层的小部件,它是使示例弹出的原因。您从层次结构中最低的构建器中弹出,这是由上下文决定的。

于 2021-12-15T02:13:06.780 回答