diff --git a/lib/widgets/navigation_scaffold/navigation_scaffold.dart b/lib/widgets/navigation_scaffold/navigation_scaffold.dart index b36ecec..87685bb 100644 --- a/lib/widgets/navigation_scaffold/navigation_scaffold.dart +++ b/lib/widgets/navigation_scaffold/navigation_scaffold.dart @@ -74,6 +74,9 @@ class _NavigationScaffoldState extends ConsumerState { final offlineMessageHeight = isOffline && !isDesktop ? 12 : 0; + final calculatedBottomViewPadding = + showPlayerBar ? floatingPlayerHeight(context) + bottomViewPadding : bottomViewPadding; + return PopScope( canPop: currentIndex == 0, onPopInvokedWithResult: (didPop, result) { @@ -93,7 +96,7 @@ class _NavigationScaffoldState extends ConsumerState { ), viewPadding: viewPaddingOf.copyWith( top: mediaQuery.viewPadding.top, - bottom: showPlayerBar ? floatingPlayerHeight(context) + bottomViewPadding : bottomViewPadding, + bottom: calculatedBottomViewPadding, ), ), //Builder to correctly apply new padding @@ -118,6 +121,7 @@ class _NavigationScaffoldState extends ConsumerState { : null, bottomNavigationBar: AnimatedVisibility( visible: (isHomeScreen && AdaptiveLayout.viewSizeOf(context) == ViewSize.phone), + hiddenHeight: calculatedBottomViewPadding, duration: const Duration(milliseconds: 250), child: HideOnScroll( controller: AdaptiveLayout.scrollOf(context), diff --git a/lib/widgets/shared/animated_visibility.dart b/lib/widgets/shared/animated_visibility.dart index cd05fe5..03f67e5 100644 --- a/lib/widgets/shared/animated_visibility.dart +++ b/lib/widgets/shared/animated_visibility.dart @@ -3,9 +3,14 @@ import 'package:flutter/material.dart'; class AnimatedVisibility extends StatelessWidget { final Widget? child; final bool visible; + final double hiddenHeight; final Duration duration; const AnimatedVisibility( - {required this.child, required this.visible, this.duration = const Duration(milliseconds: 250), super.key}); + {required this.child, + required this.visible, + this.hiddenHeight = 16, + this.duration = const Duration(milliseconds: 250), + super.key}); @override Widget build(BuildContext context) { @@ -15,7 +20,7 @@ class AnimatedVisibility extends StatelessWidget { child: IgnorePointer( ignoring: !visible, child: SizedBox( - height: visible ? null : 16, + height: visible ? null : hiddenHeight, child: child, ), ),