Connect with us

TechHype

Плавная анимация в Jetpack Compose — простое решение с animateDpAsState

Всего несколько строк кода — и вы можете создавать плавные, адаптивные переходы, которые придадут вашему приложению премиальный и продуманный вид.

Опубликовано

/

     
     

Благодаря Jetpack Compose логика анимации легко встраивается в декларацию пользовательского интерфейса.

Всего несколько строк кода — и вы можете создавать плавные, адаптивные переходы, которые придадут вашему приложению премиальный и продуманный вид.

Экспериментируем с animateDpAsState — одним из удобных API Compose, который делает переходы пользовательского интерфейса невероятно плавными.

Цель была проста: анимировать вертикальное смещение кнопки в зависимости от положения нижнего экрана.

Сниппет:

val targetY by animateDpAsState(
    targetValue = when (sheetState.currentValue) {
        SheetValue.Hidden -> 0.dp
        else -> {
            val currentOffset = with(density) {
                try { sheetState.requireOffset().toDp() }
                catch (_: Exception) { 0.dp }
            }

            (usableHeight - currentOffset)
                .coerceAtLeast(0.dp)
                .coerceAtMost(maxLift)
        }
    },
    label = "gps_button_animation"
)

Box(
    modifier = Modifier
        .offset(y = -targetY) // Negative offset moves the button up
) {
    // Button content here
}

 

Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.
Telegram

Популярное

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: