Ответ
Jetpack Compose использует принципы адаптивного дизайна через BoxWithConstraints, Modifier.fillMaxSize(), ConstraintLayout и WindowSizeClass.
Пример с BoxWithConstraints:
BoxWithConstraints {
if (maxWidth < 600.dp) { // Compact screen
Column { /* Mobile layout */ }
} else { // Expanded screen
Row { /* Tablet/desktop layout */ }
}
}
Ключевые подходы:
- Гибкие размеры через
weight()иfillMaxWidth() - Адаптивные компоненты (например,
NavigationRailвместоBottomBar) - Использование
WindowSizeClassдля определения категории экрана (Compact, Medium, Expanded)
Для сложных сценариев можно комбинировать с rememberSaveable для сохранения состояния при переконфигурации.