首页 > 解决方案 > 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。

标签: androidiosdartflutter

解决方案


在我单击提交按钮的那一刻找到了解决方案。问题是我调用了函数来选择图像两次 XD。


推荐阅读