【发布时间】:2023-03-17 21:24:01
【问题描述】:
当我点击 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。
【问题讨论】:
-
您可以单独点按
answer this question回答