【发布时间】:2022-01-17 19:04:50
【问题描述】:
我有一个警告对话框,其中包含相机包中的相机预览,在我拍照后,我希望警告对话框显示加载屏幕。我希望通过在对话框中使用三元运算符来实现这一点。下面是我按下按钮时调用的对话框,其中 isCalculating 是一个布尔值,最初设置为 false,_initializeControllerFuture 初始化相机,Loading() 是加载屏幕,Stack() 具有相机预览以及其他一些东西。
cameraDialog(context) async {
await showDialog(
barrierDismissible: false,
context: context,
builder: (_) => AlertDialog(
insetPadding: EdgeInsets.all(5.0),
contentPadding: EdgeInsets.all(3.0),
content: FutureBuilder<void>(
future: _initializeControllerFuture,
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
return isCalculating
? Loading()
: Stack(
在 cameraDialog 中,我有一个按钮,用于拍照,将 bool isCalculating 设置为 true,运行一些其他代码,并将 bool isCalculating 设置回 false。在此期间,我希望警报对话框更新其 UI 并显示 Loading() 小部件。下面是cameraDialog中按钮的按下事件:
onPressed: () async {
originalFile = await controller.takePicture();
setState(() {
isCalculating = true;
});
... other code is run here ...
Navigator.of(context).pop();
setState(() {
isCalculating = false;
});
},
【问题讨论】:
标签: flutter dart flutter-layout