我正在使用ModalBottomSheet,我很喜欢这个包。然而,当我试图在ModalBottomSheet中导航时遇到了问题。
这里有一个ScreenVideo以便更好地理解。
正如您所看到的,该视图被呈现为ModalBottomSheet。但是当弹出它时,它不是简单地消失到底部,而是弹出到一些空屏幕,并带有MaterialPage Pop动画。
我更改了我的代码,以便可以在ModalBottomSheet内使用MaterialPageRoute-Animation进行推送。在此之前,一切都按预期工作。
这是我的页面:
我只是在按照这个示例进行操作。我错过了什么?使用上面的代码,我可以像预期的那样将内容推入ModalSheet并使用MaterialPageRoute动画,但弹出第一个屏幕会出现问题...如果需要更多信息,请告诉我!感谢任何帮助 :)
这里有一个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,
),
],
),
),
)),
),
),
),
);
}
}
我只是在按照这个示例进行操作。我错过了什么?使用上面的代码,我可以像预期的那样将内容推入ModalSheet并使用MaterialPageRoute动画,但弹出第一个屏幕会出现问题...如果需要更多信息,请告诉我!感谢任何帮助 :)
build
的BuildContext
吗?在这个例子中,在pop
期间它使用了rootContext
。 - rickimaru