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

Функция AnimatedContent

Функция AnimatedContent следит за targetState и при смене значения анимирует выход старого содержимого и вход нового. Лямбда content получает текущее состояние и рисует UI для него. Переходы настраивают через transitionSpec, часто с tween или spring.

Синтаксис

AnimatedContent(targetState = page) { state -> Text(state) }

Параметры

Параметр Описание
targetState Ключ состояния, при смене которого запускается анимация.
transitionSpec Как связать enter и exit при смене targetState.
content UI для каждого значения targetState.
label Метка перехода для отладки.

Пример

Давайте переключим две подписи с crossfade:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.animation.AnimatedContent import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut import androidx.compose.animation.togetherWith import androidx.compose.foundation.layout.Column 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 class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { var text by remember { mutableStateOf("abcde") } Column { Button(onClick = { text = if (text == "abcde") "12345" else "abcde" }) { Text("abcde") } AnimatedContent( targetState = text, transitionSpec = { fadeIn() togetherWith fadeOut() }, label = "12345", ) { line -> Text(line) } } } } }

На экране при нажатии кнопки подпись "abcde" и "12345" сменяют друг друга с плавным переходом.

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

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