Перечисление EnterExitState
Перечисление EnterExitState из Compose Animation
фиксирует, на какой фазе перехода
находится composable в
AnimatedVisibility
и похожих API.
Значение можно читать в лямбдах transition
и менять стиль по фазе.
Отдельные уроки на каждое значение не нужны,
все три перечислены в таблице ниже.
Синтаксис
EnterExitState.Visible
Значения
| Значение | Описание |
|---|---|
PreEnter |
Элемент ещё не виден, идёт анимация входа. |
Visible |
Элемент полностью показан и остаётся на экране. |
PostExit |
Элемент скрывается, идёт анимация выхода. |
После PostExit composable обычно
убирают из дерева, если visible false.
Пример
Давайте переключим AnimatedVisibility и увидим фазы:
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.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) }
Button(onClick = { visible = !visible }) {
Text("abcde")
}
AnimatedVisibility(
visible = visible,
enter = fadeIn(),
exit = fadeOut(),
) {
Text("12345")
}
}
}
}
На экране при скрытии текста "12345"
сначала идёт фаза выхода, при показе - входа.
Смотрите также
-
функция
AnimatedVisibility,
которая использует фазы EnterExitState -
функция
AnimatedContent,
которая анимирует смену targetState -
функция
tween,
которой задают длительность enter и exit -
функция
spring,
для упругого появления и исчезновения