Функция tween
Функция tween из androidx.compose.animation.core
создаёт TweenSpec для перехода
от начального значения к целевому за время.
Её передают в animationSpec
у animateFloatAsState
и других animate*AsState.
Длительность задают durationMillis,
кривую - easing.
Синтаксис
tween(durationMillis = 300)
Параметры
| Параметр | Описание |
|---|---|
durationMillis |
Длина анимации в миллисекундах. |
delayMillis |
Пауза перед стартом анимации. |
easing |
Кривая скорости, например FastOutSlowInEasing.
|
Пример
Давайте растянем поворот текста на 600 мс:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.animation.core.animateFloatAsState
import androidx.compose.animation.core.tween
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.draw.rotate
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
var on by remember { mutableStateOf(false) }
val angle by animateFloatAsState(
targetValue = if (on) 45f else 0f,
animationSpec = tween(durationMillis = 600),
label = "abcde",
)
Button(onClick = { on = !on }) {
Text(
text = "abcde",
modifier = Modifier.rotate(angle),
)
}
}
}
}
На экране надпись на кнопке за полсекунды поворачивается и возвращается обратно.
Смотрите также
-
функция
spring,
альтернатива tween с пружинной физикой -
функция
animateFloatAsState,
к которой часто подставляют tween -
функция
animateDpAsState,
которая принимает tween в animationSpec -
метод
animateTo,
которому тоже передают tween