From f8612b9bc394899288bde8c315b1fc3a3ea50e52 Mon Sep 17 00:00:00 2001 From: Leandro Date: Mon, 20 May 2024 13:07:17 +0200 Subject: [PATCH 1/3] Switch to extended floating action button --- lib/screens/wool.dart | 5 +++-- lib/widgets/modal_wrapper.dart | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/screens/wool.dart b/lib/screens/wool.dart index 53195a5..b0a6ad2 100644 --- a/lib/screens/wool.dart +++ b/lib/screens/wool.dart @@ -22,7 +22,8 @@ class WoolScreen extends StatelessWidget { } else { // Hier können Sie den Inhalt basierend auf den geladenen Daten anzeigen return Scaffold( - floatingActionButton: FloatingActionButton( + floatingActionButton: FloatingActionButton.extended( + label: Text("Hinzufügen"), onPressed: () { showModalBottomSheet( isScrollControlled: true, @@ -33,7 +34,7 @@ class WoolScreen extends StatelessWidget { }, ); }, - child: Icon(Icons.add), + icon: Icon(Icons.add), ), body: Column( children: [ diff --git a/lib/widgets/modal_wrapper.dart b/lib/widgets/modal_wrapper.dart index 6cbcc56..170ff7a 100644 --- a/lib/widgets/modal_wrapper.dart +++ b/lib/widgets/modal_wrapper.dart @@ -14,7 +14,7 @@ class ModalWrapper extends StatelessWidget { child: Wrap( children: [ SizedBox( - width: 500, + width: 750, height: MediaQuery.of(context).size.height - 100, child: Padding( padding: EdgeInsets.symmetric(horizontal: 25, vertical: 10), From 56bcef493a52994374d5daecb2f23b7fe7ed18de Mon Sep 17 00:00:00 2001 From: Leandro Date: Mon, 20 May 2024 16:31:17 +0200 Subject: [PATCH 2/3] Add shimmer loading --- lib/screens/wool.dart | 32 ++++++++++++++++++++++++++++++-- pubspec.lock | 8 ++++++++ pubspec.yaml | 2 ++ 3 files changed, 40 insertions(+), 2 deletions(-) diff --git a/lib/screens/wool.dart b/lib/screens/wool.dart index b0a6ad2..b13c0a1 100644 --- a/lib/screens/wool.dart +++ b/lib/screens/wool.dart @@ -1,8 +1,10 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; +import 'package:shimmer/shimmer.dart'; import 'package:temperaturdecke/database.dart'; import 'package:temperaturdecke/screens/add_wool_modal.dart'; import 'package:temperaturdecke/widgets/cards/wool_card.dart'; +import 'package:temperaturdecke/widgets/custom_card.dart'; class WoolScreen extends StatelessWidget { WoolScreen({super.key}); @@ -16,8 +18,34 @@ class WoolScreen extends StatelessWidget { .get(), builder: (BuildContext context, AsyncSnapshot snapshot) { if (snapshot.connectionState == ConnectionState.waiting) { - return const Center( - child: CircularProgressIndicator(), + return Center( + child: Shimmer.fromColors( + baseColor: Theme.of(context).colorScheme.secondaryContainer, + highlightColor: Theme.of(context) + .colorScheme + .onSecondaryContainer + .withOpacity(.3), + child: ListView.builder( + itemBuilder: (BuildContext context, int index) { + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 10), + child: Column( + children: [ + CustomCard( + SizedBox( + height: 70, + ), + ), + const SizedBox( + height: 15, + ) + ], + ), + ); + }, + itemCount: 6, + ), + ), ); } else { // Hier können Sie den Inhalt basierend auf den geladenen Daten anzeigen diff --git a/pubspec.lock b/pubspec.lock index 26d6386..7737e2d 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -584,6 +584,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.4" + shimmer: + dependency: "direct main" + description: + name: shimmer + sha256: "5f88c883a22e9f9f299e5ba0e4f7e6054857224976a5d9f839d4ebdc94a14ac9" + url: "https://pub.dev" + source: hosted + version: "3.0.0" sky_engine: dependency: transitive description: flutter diff --git a/pubspec.yaml b/pubspec.yaml index cc4d040..0f920b0 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -33,6 +33,8 @@ dependencies: blobs: + shimmer: + flutter_colorpicker: hexcolor: From c9d62743f622880629528671e5fa6765a036181e Mon Sep 17 00:00:00 2001 From: Leandro Date: Mon, 20 May 2024 16:42:03 +0200 Subject: [PATCH 3/3] crappy load animation --- lib/screens/wool.dart | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/screens/wool.dart b/lib/screens/wool.dart index b13c0a1..fcdb26c 100644 --- a/lib/screens/wool.dart +++ b/lib/screens/wool.dart @@ -12,13 +12,15 @@ class WoolScreen extends StatelessWidget { @override Widget build(BuildContext context) { + Widget child; + return FutureBuilder( future: Provider.of(context) .select(Provider.of(context).wolle) .get(), builder: (BuildContext context, AsyncSnapshot snapshot) { if (snapshot.connectionState == ConnectionState.waiting) { - return Center( + child = Center( child: Shimmer.fromColors( baseColor: Theme.of(context).colorScheme.secondaryContainer, highlightColor: Theme.of(context) @@ -49,7 +51,7 @@ class WoolScreen extends StatelessWidget { ); } else { // Hier können Sie den Inhalt basierend auf den geladenen Daten anzeigen - return Scaffold( + child = Scaffold( floatingActionButton: FloatingActionButton.extended( label: Text("Hinzufügen"), onPressed: () { @@ -93,6 +95,12 @@ class WoolScreen extends StatelessWidget { ), ); } + return AnimatedSwitcher( + duration: Duration(milliseconds: 500), + switchInCurve: Curves.easeOut, + switchOutCurve: Curves.ease, + child: child, + ); }, ); }