From 3a50d7f1bc50c6da1c287b33e698b5fe99da0948 Mon Sep 17 00:00:00 2001 From: Nicolas Gruber Date: Mon, 15 May 2023 09:21:43 +0200 Subject: [PATCH] call clear function when selected index is changed and reduced pdf size by decoded the images before adding it to the pdf --- lib/UserDefinedList.dart | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/UserDefinedList.dart b/lib/UserDefinedList.dart index c213309..5080766 100644 --- a/lib/UserDefinedList.dart +++ b/lib/UserDefinedList.dart @@ -8,6 +8,7 @@ import 'DetailPage.dart'; import 'package:intl/intl.dart'; import 'package:pdf/widgets.dart' as pdfWidgets; import 'package:http/http.dart' as http; +import 'package:image/image.dart' as img; class UserDefinedItem extends StatelessWidget { final String title; @@ -153,6 +154,13 @@ class _GenericListState extends State { firestore.settings = const Settings(cacheSizeBytes: Settings.CACHE_SIZE_UNLIMITED); } + @override + void didUpdateWidget(GenericList oldWidget) { + super.didUpdateWidget(oldWidget); + if (widget.selectedIndex != oldWidget.selectedIndex) { + selectedItems.clear(); + } + } Stream getDocumentStream() { return firestore @@ -287,7 +295,11 @@ class _GenericListState extends State { } final Uint8List bytes = response.bodyBytes; - final imageProvider = pdfWidgets.MemoryImage(bytes); + final img.Image? image = img.decodeImage(bytes); + final img.Image resizedImage = img.copyResize(image!, width: 500); // Beispielwert für die Breite + final Uint8List resizedBytes = Uint8List.fromList(img.encodeJpg(resizedImage)); + + final imageProvider = pdfWidgets.MemoryImage(resizedBytes); return imageProvider; }