Prefer ListView.builder for PictureGrid and enable gaplessPlayback to reduce asset flicker (#308)
diff --git a/lib/studies/reply/mail_card_preview.dart b/lib/studies/reply/mail_card_preview.dart
index e4f5183..77d25dd 100644
--- a/lib/studies/reply/mail_card_preview.dart
+++ b/lib/studies/reply/mail_card_preview.dart
@@ -272,18 +272,19 @@
Widget build(BuildContext context) {
return SizedBox(
height: 96,
- child: ListView(
+ child: ListView.builder(
+ itemCount: 4,
scrollDirection: Axis.horizontal,
- children: [
- for (var index = 0; index < 4; index++)
- Padding(
- padding: const EdgeInsetsDirectional.only(end: 4),
- child: Image.asset(
- 'reply/attachments/paris_${index + 1}.jpg',
- package: 'flutter_gallery_assets',
- ),
+ itemBuilder: (context, index) {
+ return Padding(
+ padding: const EdgeInsetsDirectional.only(end: 4),
+ child: Image.asset(
+ 'reply/attachments/paris_${index + 1}.jpg',
+ gaplessPlayback: true,
+ package: 'flutter_gallery_assets',
),
- ],
+ );
+ },
),
);
}
diff --git a/lib/studies/reply/mail_view_page.dart b/lib/studies/reply/mail_view_page.dart
index 47f0663..c225b6e 100644
--- a/lib/studies/reply/mail_view_page.dart
+++ b/lib/studies/reply/mail_view_page.dart
@@ -149,6 +149,7 @@
itemBuilder: (context, index) {
return Image.asset(
'reply/attachments/paris_${index + 1}.jpg',
+ gaplessPlayback: true,
package: 'flutter_gallery_assets',
fit: BoxFit.fill,
);
diff --git a/lib/studies/reply/profile_avatar.dart b/lib/studies/reply/profile_avatar.dart
index 0e52f02..c3bbbbd 100644
--- a/lib/studies/reply/profile_avatar.dart
+++ b/lib/studies/reply/profile_avatar.dart
@@ -19,6 +19,7 @@
child: ClipOval(
child: Image.asset(
avatar,
+ gaplessPlayback: true,
package: 'flutter_gallery_assets',
height: 42,
width: 42,