2.9Kпросмотров
72.3%от подписчиков
3 марта 2026 г.
Score: 3.2K
Новый Experimental Styles API в Jetpack Compose Устали от простыней кода с InteractionSource и animate*AsState просто чтобы поменять цвет кнопки при нажатии? В Compose завозят решение! 👉 Всё в одном блоке: Больше не нужно жонглировать модификаторами и стейтами. Вы создаете единый блок Style, где описываете базовый вид и реакции на различные состояния (hovered, pressed, focused)
👉 Автоматические анимации: Достаточно обернуть изменения в блок animate { ... } (можно передать свой AnimationSpec), и система сама плавно заанимирует переходы
👉 Умная инвалидация под капотом: Свойства стилей хранятся с использованием битовых масок. Если при нажатии меняется только цвет (свойства отрисовки), Compose инвалидирует только фазу draw, полностью пропуская рекомпозицию и layout
👉 Доступ к темам: StyleScope имеет доступ к CompositionLocal, так что можно легко брать цвета из темы прямо внутри стиля, и они будут обновляться при ее смене ClickableStyleableBox( onClick = onClick, style = { background(Color.Green) size(150.dp) hovered { animate { background(Color.Yellow) } } pressed { animate(tween(100)) { background(Color.Red) } } }
)