Я пытаюсь создать функцию, которая будет перемещаться к экрану камеры, чтобы сделать снимок. Когда изображение захватывается, вызывается метод обратного вызова с путем к новому изображению. В этом методе изображение добавляется в список виджетов изображений, например:
обратный вызов:
void _addPictureToGallery(String imagePath) {
this.setState(() {
this.imageGallery.add(Container(
decoration:
BoxDecoration(border: Border.all(color: Colors.black, width: 2)),
child: Image.file(File(imagePath))));
});
}
расположение:
body: GridView.count(
crossAxisCount: 2,
children: imageGallery,
),
По какой-то причине это не работает. Я проверил большинство сценариев и могу подтвердить, что переменная imageGallery фактически заполняется новыми изображениями, но новые изображения не отображаются. Если я добавлю набор изображений по умолчанию в методе initState, то они действительно будут отображаться, но только новые захваченные изображения не будут отображаться.
Если я удаляю логику GridView и просто отображаю одно изображение, которое снимается, как показано ниже, то оно работает ...
расположение:
body: imagePath != null ? Image.file(File(imagePath)) : Container(),
обратный вызов:
void _addPictureToGallery(String imagePath) {
this.setState(() {
this.imagePath = imagePath;
});
}
Любая помощь приветствуется!