我发布了我最终要执行的操作,因为它有效。
@Nonstapp和@Parth建议的内容除Hero过渡外均适用,因为它仅适用于PageRoutes。
因此,我发现了另一种显示PageRoute的类似弹出窗口的方法。
我正在显示的信息小部件:
return Padding(
padding: EdgeInsets.fromLTRB(
MediaQuery.of(context).size.width / 8,
MediaQuery.of(context).size.height / 4,
MediaQuery.of(context).size.width / 8,
0),
child: Material(
color: Colors.transparent,
child: ...
填充显然是用于定位的,而Material小部件则是为其提供Material样式和已启用的部件,例如IconButton。为“材质”小部件赋予透明颜色。
这就是我所说的:
void seeDetails(BuildContext context, Book book) {
Navigator.push(
context,
PageRouteBuilder(
fullscreenDialog: true,
opaque: false,
pageBuilder: (_, __, ___) => ChangeNotifierProvider.value(
value: book,
child: DetailCard(),
),
),
);
}
我使用PageRouter来显示全屏对话框,但是由于在那里的设置,只有信息卡可见。
缺点是我无法启用barrierDismissible,因为我在另一条路线的atm上。
这是我的结果:
但是,真正的解决方案是上面@pskink建议的。它需要更多的设置和调整,并且我与提供者有问题。这是实现它的方法
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句