Simone Summo
03/01/2021, 7:56 PMBryan Herbst
03/01/2021, 8:07 PMthemes.xml
.
You can either change the color there for a quick win, or make some tweaks to support drawing edge-to-edge in ComposeStylianos Gakis
03/01/2021, 8:11 PMimplementation "dev.chrisbanes.accompanist:accompanist-insets:$accompanist_version"
from https://github.com/chrisbanes/accompanist
You can do something like this (please do correct me people if I am doing something wrong here)
@Composable
fun EdgeToEdgeContent(content: @Composable () -> Unit) {
val view = LocalView.current
val window = (LocalContext.current as Activity).window
val statusBarColor = MaterialTheme.colors.primary
val statusBarAndroidColor = android.graphics.Color.valueOf(
statusBarColor.red,
statusBarColor.green,
statusBarColor.blue,
statusBarColor.alpha
)
val navigationBarColor = MaterialTheme.colors.primary
val navigationBarAndroidColor = android.graphics.Color.valueOf(
navigationBarColor.red,
navigationBarColor.green,
navigationBarColor.blue,
navigationBarColor.alpha
)
window.statusBarColor = statusBarAndroidColor.toArgb()
window.navigationBarColor = navigationBarAndroidColor.toArgb()
val insetsController = remember(view, window) {
WindowCompat.getInsetsController(window, view)
}
val isLightTheme = MaterialTheme.colors.isLight
insetsController?.run {
isAppearanceLightNavigationBars = isLightTheme
isAppearanceLightStatusBars = isLightTheme
}
ProvideWindowInsets(content = content)
}
And then I am simply wrapping everything with it by specifying in my main Activity:
setContent {
AppTheme {
EdgeToEdgeContent {
Surface(
color = MaterialTheme.colors.background,
modifier = Modifier.fillMaxSize()
) {
YourAppComposable()
}
}
}
}
I hope this helps!Colton Idle
03/02/2021, 12:13 AMQuentin Dommerc
03/02/2021, 6:38 AMSimone Summo
03/03/2021, 1:24 PM