Форум для тех, кто программирует под Android
Anonymous
Как решить наборы ослабления для StatusBarcolor и NavigationBarcolor в Android API 35+?
Сообщение
Anonymous » 02 июн 2025, 04:34
У меня есть следующая композиционная тема: < /p>
Код: Выделить всё
@Composable
fun AppTheme(
themeOption: ThemeOption = ThemeOption.SYSTEM,
// Dynamic color is available on Android 12+
dynamicColor: Boolean = true,
content: @Composable () -> Unit,
) {
val isDarkTheme = isAppInDarkTheme(themeOption)
val colorScheme = when {
dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> {
val context = LocalContext.current
if (isDarkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context)
}
isDarkTheme -> darkScheme
else -> lightScheme
}
val view = LocalView.current
if (!view.isInEditMode) {
SideEffect {
(view.context as? Activity)?.window?.apply {
statusBarColor = colorScheme.background.toArgb()
navigationBarColor = colorScheme.surfaceContainer.toArgb()
}?.also {
WindowCompat.getInsetsController(it, view).apply {
isAppearanceLightStatusBars = !isDarkTheme
isAppearanceLightNavigationBars = !isDarkTheme
}
}
}
}
MaterialTheme(
colorScheme = colorScheme,
content = content
)
}
< /code>
Фаг кода, который имеет снижение: < /p>
WindowCompat.getInsetsController(it, view).apply {
isAppearanceLightStatusBars = !isDarkTheme
isAppearanceLightNavigationBars = !isDarkTheme
}
< /code>
Сообщения об испаке: < /p>
Deprecated
Draw proper background behind WindowInsets.Type.navigationBars() or WindowInsets. Type. tappableElement() instead.
Deprecated
Draw proper background behind WindowInsets.Type.statusBars()} instead.
Я видел, что связано с API 35. Как я могу его решить?
Подробнее здесь:
https://stackoverflow.com/questions/792 ... r-in-andro
1748828047
Anonymous
У меня есть следующая композиционная тема: < /p> [code]@Composable fun AppTheme( themeOption: ThemeOption = ThemeOption.SYSTEM, // Dynamic color is available on Android 12+ dynamicColor: Boolean = true, content: @Composable () -> Unit, ) { val isDarkTheme = isAppInDarkTheme(themeOption) val colorScheme = when { dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> { val context = LocalContext.current if (isDarkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context) } isDarkTheme -> darkScheme else -> lightScheme } val view = LocalView.current if (!view.isInEditMode) { SideEffect { (view.context as? Activity)?.window?.apply { statusBarColor = colorScheme.background.toArgb() navigationBarColor = colorScheme.surfaceContainer.toArgb() }?.also { WindowCompat.getInsetsController(it, view).apply { isAppearanceLightStatusBars = !isDarkTheme isAppearanceLightNavigationBars = !isDarkTheme } } } } MaterialTheme( colorScheme = colorScheme, content = content ) } < /code> Фаг кода, который имеет снижение: < /p> WindowCompat.getInsetsController(it, view).apply { isAppearanceLightStatusBars = !isDarkTheme isAppearanceLightNavigationBars = !isDarkTheme } < /code> Сообщения об испаке: < /p> Deprecated Draw proper background behind WindowInsets.Type.navigationBars() or WindowInsets. Type. tappableElement() instead. Deprecated Draw proper background behind WindowInsets.Type.statusBars()} instead. [/code] Я видел, что связано с API 35. Как я могу его решить? Подробнее здесь: [url]https://stackoverflow.com/questions/79213453/how-to-solve-deprecation-sets-for-statusbarcolor-and-navigationbarcolor-in-andro[/url]