Fixed issue listviews in tabs

This commit is contained in:
Juan Gilsanz Polo 2022-10-09 16:44:58 +02:00
parent b0310c2714
commit 02d1b18321
3 changed files with 82 additions and 64 deletions

View file

@ -95,25 +95,31 @@ class _ClientsWidgetState extends State<ClientsWidget> with TickerProviderStateM
controller: scrollController, controller: scrollController,
headerSliverBuilder: ((context, innerBoxIsScrolled) { headerSliverBuilder: ((context, innerBoxIsScrolled) {
return [ return [
SliverAppBar( SliverOverlapAbsorber(
title: Text(AppLocalizations.of(context)!.clients), handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context),
centerTitle: true, sliver: SliverSafeArea(
pinned: true, top: false,
floating: true, sliver: SliverAppBar(
forceElevated: innerBoxIsScrolled, title: Text(AppLocalizations.of(context)!.clients),
bottom: TabBar( centerTitle: true,
controller: tabController, pinned: true,
tabs: [ floating: true,
Tab( forceElevated: innerBoxIsScrolled,
icon: const Icon(Icons.devices), bottom: TabBar(
text: AppLocalizations.of(context)!.activeClients, controller: tabController,
), tabs: [
Tab( Tab(
icon: const Icon(Icons.add), icon: const Icon(Icons.devices),
text: AppLocalizations.of(context)!.added, text: AppLocalizations.of(context)!.activeClients,
), ),
] Tab(
) icon: const Icon(Icons.add),
text: AppLocalizations.of(context)!.added,
),
]
)
),
),
) )
]; ];
}), }),

View file

@ -86,29 +86,35 @@ class _FiltersWidgetState extends State<FiltersWidget> with TickerProviderStateM
controller: scrollController, controller: scrollController,
headerSliverBuilder: ((context, innerBoxIsScrolled) { headerSliverBuilder: ((context, innerBoxIsScrolled) {
return [ return [
SliverAppBar( SliverOverlapAbsorber(
title: Text(AppLocalizations.of(context)!.filters), handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context),
centerTitle: true, sliver: SliverSafeArea(
pinned: true, top: false,
floating: true, sliver: SliverAppBar(
forceElevated: innerBoxIsScrolled, title: Text(AppLocalizations.of(context)!.filters),
bottom: TabBar( centerTitle: true,
controller: tabController, pinned: true,
tabs: [ floating: true,
Tab( forceElevated: innerBoxIsScrolled,
icon: const Icon(Icons.verified_user_rounded), bottom: TabBar(
text: AppLocalizations.of(context)!.whitelists, controller: tabController,
), tabs: [
Tab( Tab(
icon: const Icon(Icons.gpp_bad_rounded), icon: const Icon(Icons.verified_user_rounded),
text: AppLocalizations.of(context)!.blacklists, text: AppLocalizations.of(context)!.whitelists,
), ),
Tab( Tab(
icon: const Icon(Icons.shield_rounded), icon: const Icon(Icons.gpp_bad_rounded),
text: AppLocalizations.of(context)!.customRules, text: AppLocalizations.of(context)!.blacklists,
), ),
] Tab(
) icon: const Icon(Icons.shield_rounded),
text: AppLocalizations.of(context)!.customRules,
),
]
)
),
),
) )
]; ];
}), }),

View file

@ -79,28 +79,34 @@ class _AccessSettingsWidgetState extends State<AccessSettingsWidget> with Ticker
controller: scrollController, controller: scrollController,
headerSliverBuilder: ((context, innerBoxIsScrolled) { headerSliverBuilder: ((context, innerBoxIsScrolled) {
return [ return [
SliverAppBar( SliverOverlapAbsorber(
title: Text(AppLocalizations.of(context)!.accessSettings), handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context),
pinned: true, sliver: SliverSafeArea(
floating: true, top: false,
forceElevated: innerBoxIsScrolled, sliver: SliverAppBar(
bottom: TabBar( title: Text(AppLocalizations.of(context)!.accessSettings),
controller: tabController, pinned: true,
tabs: [ floating: true,
Tab( forceElevated: innerBoxIsScrolled,
icon: const Icon(Icons.check), bottom: TabBar(
text: AppLocalizations.of(context)!.allowedClients, controller: tabController,
), tabs: [
Tab( Tab(
icon: const Icon(Icons.block), icon: const Icon(Icons.check),
text: AppLocalizations.of(context)!.disallowedClients, text: AppLocalizations.of(context)!.allowedClients,
), ),
Tab( Tab(
icon: const Icon(Icons.link_rounded), icon: const Icon(Icons.block),
text: AppLocalizations.of(context)!.disallowedDomains, text: AppLocalizations.of(context)!.disallowedClients,
), ),
] Tab(
) icon: const Icon(Icons.link_rounded),
text: AppLocalizations.of(context)!.disallowedDomains,
),
]
)
),
),
) )
]; ];
}), }),