Когда я нажимаю на 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.
На него можно ответить, нажав отдельно
answer this question