Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
443 of 502 menu
◀ ▶

Функция animateDpAsState

Функция animateDpAsState анимирует Dp к targetValue при смене состояния. Возвращает State<Dp>, удобный для padding и size. Спецификацию передают в animationSpec, часто tween или spring.

Синтаксис

val pad by animateDpAsState(targetValue = targetDp)

Параметры

Параметр Описание
targetValue Целевой размер в dp.
animationSpec Как именно менять значение во времени.
label Имя анимации для trace.

Пример

Давайте раздвинем отступ текста по кнопке:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.animation.core.animateDpAsState import androidx.compose.animation.core.tween import androidx.compose.foundation.layout.padding import androidx.compose.material3.Button import androidx.compose.material3.Text import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { var wide by remember { mutableStateOf(false) } val pad by animateDpAsState( targetValue = if (wide) 48.dp else 8.dp, animationSpec = tween(400), label = "abcde", ) Button(onClick = { wide = !wide }) { Text( text = "abcde", modifier = Modifier.padding(pad), ) } } } }

На экране текст на кнопке плавно отъезжает от краёв при переключении отступа.

Смотрите также

  • функция animateFloatAsState,
    которая анимирует дробное число
  • функция animateColorAsState,
    которая анимирует цвет
  • функция tween,
    которая задаёт длительность перехода
  • функция AnimatedVisibility,
    которая показывает блок с анимацией
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить