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

Функция AnimatedVisibility

Функция AnimatedVisibility рисует дочерние элементы только когда visible равен true, с анимацией входа и выхода. Переходы задают enter и exit, состояния связаны с EnterExitState. Флаг visible хранят в mutableStateOf.

Синтаксис

AnimatedVisibility(visible = visible) { Text("abcde") }

Параметры

Параметр Описание
visible true, если блок должен быть на экране.
enter Анимация появления, например fadeIn.
exit Анимация исчезновения, например fadeOut.
content Composable, который показывают и скрывают.

Пример

Давайте покажем текст с fade по кнопке:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut 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 visible by remember { mutableStateOf(true) } Column { Button(onClick = { visible = !visible }) { Text("abcde") } AnimatedVisibility( visible = visible, enter = fadeIn(), exit = fadeOut(), ) { Text("12345") } } } } }

На экране строка "12345" плавно появляется и исчезает при нажатии кнопки "abcde".

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

  • функция AnimatedContent,
    которая анимирует смену одного содержимого на другое
  • перечисление EnterExitState,
    которое описывает фазы входа и выхода
  • функция tween,
    которую задают внутри enter и exit
  • функция animateFloatAsState,
    для простой анимации одного числа без visibility
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить