Я создал класс, который должен возвращать размер сетевого изображения, но он не работает, я не знаю почему. Поэтому я хочу работать так, чтобы URL-адрес изображения передавался в класс, а затем вызывается функция _ImageSize конструктора класса, которая устанавливает свойство высоты и ширины класса
import 'dart:async';
import 'dart:ui' as ui;
import 'package:flutter/material.dart';
class ImageSize {
double height;
double width;
final String imgName;
ImageSize(this.imgName) {
_imageSize();
}
void _imageSize() {
Future<ui.Image> _getImageInfo() {
Completer<ui.Image> completer = Completer<ui.Image>();
NetworkImage(this.imgName).resolve(ImageConfiguration()).addListener(
ImageStreamListener(
(ImageInfo info, bool _) => completer.complete(info.image),
),
);
return completer.future;
}
_getImageInfo().then((size) {
print(size);
height = size.height.toDouble();
width = size.width.toDouble();
}).catchError((e) {
print(e);
});
}
}
main() async {
double height = ImageSize(
'https://images.pexels.com/photos/20787/pexels-photo.jpg?auto=compress&cs=tinysrgb&dpr=1&w=500'
).height;
print(height);
}