【发布时间】:2020-10-26 20:52:30
【问题描述】:
我正在尝试从我的图库中拍摄图像或立即使用相机拍摄上传页面。我创建了一个对话框来显示这两个选项,但出现错误
在构建期间调用 setState() 或 markNeedsBuild()。
当我在我的模拟器上运行时。
任何帮助将不胜感激。谢谢
这是我的代码
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';
class UploadPage extends StatefulWidget {
@override
_UploadPageState createState() => _UploadPageState();
}
class _UploadPageState extends State<UploadPage> {
PickedFile image;
final picker=ImagePicker();
takeImage(mContext){
return showDialog(
context: mContext,
builder: (context){
return SimpleDialog(
title: Text("New post"),
children: [
SimpleDialogOption(
child: Text("Upload from from gallery"),
onPressed: ()async{
Navigator.pop(context);
final file=await picker.getImage(
source: ImageSource.gallery,
// maxHeight: 600,
// maxWidth: 970,
);
setState(() {
this.image=file;
});
},
),
SimpleDialogOption(
child: Text("Capture with camera"),
onPressed: ()async{
Navigator.pop(context);
final file=await picker.getImage(
source: ImageSource.camera,
maxHeight: 600,
maxWidth: 970,
);
setState(() {
this.image=file;
});
},
),
SimpleDialogOption(
child: Text("Cancel",style: TextStyle(color: Colors.red),),
onPressed: (){
Navigator.pop(context);
},
),
],
);
}
);
}
@override
Widget build(BuildContext context) {
return takeImage(context);
}
}
【问题讨论】: