我试图以模态方式显示视图,有点像警报对话框,但是我需要对其进行完全控制(传统的警报对话框不会对此进行控制)。
现在,我可以执行以下操作:
volatile
我对视图(StationDetail)拥有完全控制权,但这是全屏推送,而不是模式推送。而且我也不确定这是否是正确的方法。
或者我可以做到
onTap: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => StationDetail()),
);
}));
在这种情况下,它是模态,但是 onTap: () {
showDialog(
context: context,
builder: (BuildContext context) {
return Container(
height: 100,
width: 100,
child: Text("This is a test"),
);
});
做了很多我不想要/不需要的东西。如果我给它一个Alertdialog,它看起来很好,但是我真的不能对其进行任何自定义。
这是我的StationWidget的样子:
showDialog
所以我的问题如下: 我该如何在视图上以模态方式显示来自OnTap的自定义小部件:?
答案 0 :(得分:1)
您可以使用PageRouteBuilder:
Navigator.of(context).push(
PageRouteBuilder(
opaque: false,
pageBuilder: (BuildContext context, _, __) {
return StationDetail();
},
),
);
并且您的StationDetail小部件必须透明
class StationDetail extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.transparent,
child: ...
);
}
}