android - Flutter - 拍照
问题描述
当我点击 GestureDetector 时,它会打开一个对话框,我可以在其中选择是否要从图库中拍照或自己制作照片(插件)。但我的问题是,当我单击对话框上的一个按钮时,对话框再次弹出,只有在那之后,才能从相机或图库中拍照。如果有人可以帮助我解决这个问题,那就太好了。
这是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。
解决方案
在我单击提交按钮的那一刻找到了解决方案。问题是我调用了函数来选择图像两次 XD。
推荐阅读
- linux - 在 Linux 中,如何检查文件是否被锁定(fuser 和 lsof 未给出预期结果)
- google-api - 使用 HTTP 的 Google Drive API 批处理请求
- pine-script - 需要为较低的高点绘制线并在第二天重新开始
- firebase - 错误:参数类型'Stream
- >>' 不能分配给参数类型'Stream
- >'
- ubuntu-20.04 - 测试用户正在 100% 占用几个 CPU
- html - 在输入字段内放置一个按钮
- javascript - React Pass Component 作为 props 并渲染它
- junit - Ant JUnit 测试类notfoundexception
- reactjs - 无法从 Material-UI Datagrid 中找到唯一 id 属性
- python - Loss函数返回负值的原因是什么?