From 02d1b18321c5009cc0c27fcaa590a90f91de1f41 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 9 Oct 2022 16:44:58 +0200 Subject: [PATCH] Fixed issue listviews in tabs --- lib/screens/clients/clients.dart | 44 ++++++++++--------- lib/screens/filters/filters.dart | 52 +++++++++++++---------- lib/screens/settings/access_settings.dart | 50 ++++++++++++---------- 3 files changed, 82 insertions(+), 64 deletions(-) diff --git a/lib/screens/clients/clients.dart b/lib/screens/clients/clients.dart index 61270ad..af8fb4f 100644 --- a/lib/screens/clients/clients.dart +++ b/lib/screens/clients/clients.dart @@ -95,25 +95,31 @@ class _ClientsWidgetState extends State with TickerProviderStateM controller: scrollController, headerSliverBuilder: ((context, innerBoxIsScrolled) { return [ - SliverAppBar( - title: Text(AppLocalizations.of(context)!.clients), - centerTitle: true, - pinned: true, - floating: true, - forceElevated: innerBoxIsScrolled, - bottom: TabBar( - controller: tabController, - tabs: [ - Tab( - icon: const Icon(Icons.devices), - text: AppLocalizations.of(context)!.activeClients, - ), - Tab( - icon: const Icon(Icons.add), - text: AppLocalizations.of(context)!.added, - ), - ] - ) + SliverOverlapAbsorber( + handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), + sliver: SliverSafeArea( + top: false, + sliver: SliverAppBar( + title: Text(AppLocalizations.of(context)!.clients), + centerTitle: true, + pinned: true, + floating: true, + forceElevated: innerBoxIsScrolled, + bottom: TabBar( + controller: tabController, + tabs: [ + Tab( + icon: const Icon(Icons.devices), + text: AppLocalizations.of(context)!.activeClients, + ), + Tab( + icon: const Icon(Icons.add), + text: AppLocalizations.of(context)!.added, + ), + ] + ) + ), + ), ) ]; }), diff --git a/lib/screens/filters/filters.dart b/lib/screens/filters/filters.dart index ae5fa84..3b64f8a 100644 --- a/lib/screens/filters/filters.dart +++ b/lib/screens/filters/filters.dart @@ -86,29 +86,35 @@ class _FiltersWidgetState extends State with TickerProviderStateM controller: scrollController, headerSliverBuilder: ((context, innerBoxIsScrolled) { return [ - SliverAppBar( - title: Text(AppLocalizations.of(context)!.filters), - centerTitle: true, - pinned: true, - floating: true, - forceElevated: innerBoxIsScrolled, - bottom: TabBar( - controller: tabController, - tabs: [ - Tab( - icon: const Icon(Icons.verified_user_rounded), - text: AppLocalizations.of(context)!.whitelists, - ), - Tab( - icon: const Icon(Icons.gpp_bad_rounded), - text: AppLocalizations.of(context)!.blacklists, - ), - Tab( - icon: const Icon(Icons.shield_rounded), - text: AppLocalizations.of(context)!.customRules, - ), - ] - ) + SliverOverlapAbsorber( + handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), + sliver: SliverSafeArea( + top: false, + sliver: SliverAppBar( + title: Text(AppLocalizations.of(context)!.filters), + centerTitle: true, + pinned: true, + floating: true, + forceElevated: innerBoxIsScrolled, + bottom: TabBar( + controller: tabController, + tabs: [ + Tab( + icon: const Icon(Icons.verified_user_rounded), + text: AppLocalizations.of(context)!.whitelists, + ), + Tab( + icon: const Icon(Icons.gpp_bad_rounded), + text: AppLocalizations.of(context)!.blacklists, + ), + Tab( + icon: const Icon(Icons.shield_rounded), + text: AppLocalizations.of(context)!.customRules, + ), + ] + ) + ), + ), ) ]; }), diff --git a/lib/screens/settings/access_settings.dart b/lib/screens/settings/access_settings.dart index 40336c6..a8496ab 100644 --- a/lib/screens/settings/access_settings.dart +++ b/lib/screens/settings/access_settings.dart @@ -79,28 +79,34 @@ class _AccessSettingsWidgetState extends State with Ticker controller: scrollController, headerSliverBuilder: ((context, innerBoxIsScrolled) { return [ - SliverAppBar( - title: Text(AppLocalizations.of(context)!.accessSettings), - pinned: true, - floating: true, - forceElevated: innerBoxIsScrolled, - bottom: TabBar( - controller: tabController, - tabs: [ - Tab( - icon: const Icon(Icons.check), - text: AppLocalizations.of(context)!.allowedClients, - ), - Tab( - icon: const Icon(Icons.block), - text: AppLocalizations.of(context)!.disallowedClients, - ), - Tab( - icon: const Icon(Icons.link_rounded), - text: AppLocalizations.of(context)!.disallowedDomains, - ), - ] - ) + SliverOverlapAbsorber( + handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), + sliver: SliverSafeArea( + top: false, + sliver: SliverAppBar( + title: Text(AppLocalizations.of(context)!.accessSettings), + pinned: true, + floating: true, + forceElevated: innerBoxIsScrolled, + bottom: TabBar( + controller: tabController, + tabs: [ + Tab( + icon: const Icon(Icons.check), + text: AppLocalizations.of(context)!.allowedClients, + ), + Tab( + icon: const Icon(Icons.block), + text: AppLocalizations.of(context)!.disallowedClients, + ), + Tab( + icon: const Icon(Icons.link_rounded), + text: AppLocalizations.of(context)!.disallowedDomains, + ), + ] + ) + ), + ), ) ]; }),