WEBサイト制作・アプリ開発・システム開発・ブランディングデザイン制作に関するご相談はお気軽にご連絡ください。
構想段階からじっくりとヒアリングし、お客様の課題にあわせたアプローチ手法でお客様の“欲しかった”をカタチにしてご提案いたします。
Blog スタッフブログ
Flutter
システム開発
ひとくちコードスニペット
[Flutter]画像をネットワーク経由で読み込むコードスニペット
![]()
こんにちは、株式会社MIXシステム開発担当のBloomです。
今回はFlutterで利用できるコードスニペットを紹介します。
AspectRatio(
aspectRatio: 1/ 1,
child: Image.network(
"https://mixltd.jp/cms/wp-content/uploads/icon_flutter.png",
fit: BoxFit.cover,
loadingBuilder: (context, child, progress) {
if (progress == null) return child;
final expected = progress.expectedTotalBytes;
final loaded = progress.cumulativeBytesLoaded;
final value = (expected != null) ? loaded / expected : null;
return Center(
child: CircularProgressIndicator(value: value),
);
},
errorBuilder: (_, __, ___) => const Icon(Icons.broken_image),
)
);さて、それぞれ解説していきたいと思います。
まずはImageをAspectRatioでラップすることで読み込み中の画像比率を固定化しています。これを指定しない場合ロード完了時に表示がガタつくなどの挙動が発生する場合があります。
次にloadingBuilderではロード中に進捗表示を行っています。ロードに失敗しそうな場合でもchildを返却するように注意しましょう。
errorBuilderでは読み込みに失敗した場合に表示するWidgetを指定しましょう。ここではIcons.broken_imageを表示させています。
これだけで画像をURLから読み込めるようになりました。良かったですね。