perf: use cached network images

This commit is contained in:
Lukas Müllner 2026-03-05 08:36:25 +01:00
parent 93cbf4b568
commit abf1b9d788
2 changed files with 12 additions and 6 deletions

View file

@ -1,5 +1,6 @@
import 'dart:io'; import 'dart:io';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart'; import 'package:image_picker/image_picker.dart';
import '../main.dart'; import '../main.dart';
@ -534,10 +535,12 @@ class GarageScreenState extends State<GarageScreen> {
child: AspectRatio( child: AspectRatio(
aspectRatio: 16 / 10, aspectRatio: 16 / 10,
child: imageUrl != null && imageUrl.isNotEmpty child: imageUrl != null && imageUrl.isNotEmpty
? Image.network( ? CachedNetworkImage(
imageUrl, imageUrl: imageUrl,
fit: BoxFit.cover, fit: BoxFit.cover,
errorBuilder: (context, error, stackTrace) => Column( fadeInDuration: Duration.zero,
fadeOutDuration: Duration.zero,
errorWidget: (context, url, error) => Column(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
Expanded(child: _imagePlaceholder()), Expanded(child: _imagePlaceholder()),

View file

@ -1,4 +1,5 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:cached_network_image/cached_network_image.dart';
import '../theme/app_colors.dart'; import '../theme/app_colors.dart';
/// A styled card for displaying a single Hot Wheels car in the garage. /// A styled card for displaying a single Hot Wheels car in the garage.
@ -66,10 +67,12 @@ class CarCard extends StatelessWidget {
: AppColors.brandGradientSoft, : AppColors.brandGradientSoft,
), ),
child: imageUrl != null && imageUrl!.isNotEmpty child: imageUrl != null && imageUrl!.isNotEmpty
? Image.network( ? CachedNetworkImage(
imageUrl!, imageUrl: imageUrl!,
fit: BoxFit.cover, fit: BoxFit.cover,
errorBuilder: (context, error, stackTrace) { fadeInDuration: Duration.zero,
fadeOutDuration: Duration.zero,
errorWidget: (context, url, error) {
onImageError?.call(); onImageError?.call();
return _PlaceholderIcon(isDark: isDark); return _PlaceholderIcon(isDark: isDark);
}, },