当我想从图库中拍摄照片或自己制作照片时,点击GestureDetector时,会打开一个对话框,供我选择(the plugin)。但是我的问题是,当我单击对话框上的按钮之一时,对话框再次弹出,只有在此之后,才可以从相机或图库中拍照。 如果有人可以帮助我解决这个问题,那就太好了。
这是 GestureDetector :
GestureDetector(
child: Container(
child: (_image == null
? CircleAvatar(child: Icon(Icons.photo))
: FileImage(_image)
)
),
onTap: () async{
switch(await dialogs.takePhoto(context)){
case "take":
getImage(ImageSource.camera);
break;
case "pick":
getImage(ImageSource.gallery);
break;
}
},
)
呼叫dialogs.takePhoto(context)
在这里结束:
takePhoto(BuildContext context){
return showDialog(
context: context,
barrierDismissible: false,
builder: (BuildContext ctxt){
return AlertDialog(
title: Text("Change Photo"),
content: Container(
child: Column(
children: <Widget>[
InkWell(
child: Text("Take photo"),
onTap: ()=> Navigator.pop(ctxt, "take"),
),
InkWell(
child: Text("Pick photo"),
onTap: ()=> Navigator.pop(ctxt, "pick"),
),
],
),
),
actions: <Widget>[
FlatButton(
child: Text(
"Abort"
),
onPressed: ()=>Navigator.pop(ctxt),
)
],
);
}
);
}
谢谢!
解决方案
恰好在我单击“提交”按钮的那一刻找到了解决方案。问题是我调用该函数以两次XD拾取图像。
答案 0 :(得分:0)
恰好在我单击“提交”按钮的那一刻找到了解决方案。问题是我调用该函数以两次XD拾取图像。