fix(android): place shell banners below the status bar
ShellScaffold's banner column did not consume the status-bar inset while each screen's app bar did, so the update/connection banners drew under the status bar. Consume the inset once at the shell (statusBarsPadding) so banners sit below it; descendant screen app bars see the consumed inset and stop re-padding, matching Flutter's SafeArea(bottom:false). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -4,6 +4,7 @@ import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.statusBarsPadding
|
||||
import androidx.compose.material3.SnackbarHost
|
||||
import androidx.compose.material3.SnackbarHostState
|
||||
import androidx.compose.runtime.Composable
|
||||
@@ -61,7 +62,12 @@ fun ShellScaffold(
|
||||
snackbarHostState.showSnackbar(msg)
|
||||
}
|
||||
}
|
||||
Column(modifier = modifier.fillMaxSize()) {
|
||||
// Consume the status-bar inset once here so the banner stack sits
|
||||
// below the status bar (mirrors Flutter's SafeArea(bottom:false)).
|
||||
// statusBarsPadding consumes the inset for descendants, so the in-
|
||||
// shell screens' app bars no longer re-pad for the status bar —
|
||||
// avoiding a double inset while fixing banners drawing under it.
|
||||
Column(modifier = modifier.fillMaxSize().statusBarsPadding()) {
|
||||
// Banner slot. VersionTooOldBanner appears when the server's
|
||||
// min_client_version exceeds our build; UpdateBanner softly
|
||||
// nudges an available (newer-than-installed) APK; and
|
||||
|
||||
Reference in New Issue
Block a user