buildImageWidget method
Builds Image.
Implementation
Widget? buildImageWidget(BuildTree tree, ImageSource src) {
final url = src.url;
ImageProvider? provider;
if (url.startsWith('asset:')) {
provider = imageProviderFromAsset(url);
} else if (url.startsWith('data:image/')) {
provider = imageProviderFromDataUri(url);
} else if (url.startsWith('file:')) {
provider = imageProviderFromFileUri(url);
} else {
provider = imageProviderFromNetwork(url);
}
if (provider == null) {
return null;
}
final image = src.image;
final semanticLabel = image?.alt ?? image?.title;
return Image(
errorBuilder: (context, error, _) =>
onErrorBuilder(context, tree, error, src) ?? widget0,
loadingBuilder: (context, child, loadingProgress) {
if (loadingProgress == null) {
return child;
}
final t = loadingProgress.expectedTotalBytes;
final loaded = loadingProgress.cumulativeBytesLoaded;
final v = t != null && t > 0 ? loaded / t : null;
return onLoadingBuilder(context, tree, v, src) ?? child;
},
excludeFromSemantics: semanticLabel == null,
fit: BoxFit.fill,
image: provider,
semanticLabel: semanticLabel,
);
}