Ответ
CompositionLocal — это динамический механизм передачи данных через дерево композиции, который автоматически обновляет зависящие от него компоненты при изменении значения. Используется через CompositionLocalProvider.
CompositionLocalStatic — это статический аналог, который не обновляет компоненты при изменении значения. Подходит для константных данных, которые не меняются во время выполнения.
Пример:
val LocalDynamicTheme = compositionLocalOf { LightTheme } // Обновляет UI при изменении
val LocalStaticTheme = staticCompositionLocalOf { LightTheme } // Не обновляет UI
@Composable
fun ThemedApp() {
CompositionLocalProvider(LocalDynamicTheme provides DarkTheme) {
// UI обновится при изменении темы
}
}