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

Метод snapTo

Метод snapTo класса Animatable мгновенно записывает targetValue в value, не запуская tween. Это suspend функция, её вызывают из LaunchedEffect или корутины. Удобно после жеста или перед новым animateTo.

Синтаксис

animatable.snapTo(targetValue)

Параметры

Параметр Описание
targetValue Новое значение без промежуточных кадров.

Пример

Давайте сбросим offset по нажатию кнопки:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.animation.core.Animatable import androidx.compose.foundation.layout.offset import androidx.compose.material3.Button import androidx.compose.material3.Text import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Modifier import androidx.compose.ui.unit.IntOffset import kotlinx.coroutines.launch import kotlin.math.roundToInt class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { val x = remember { Animatable(50f) } val scope = rememberCoroutineScope() Button(onClick = { scope.launch { x.snapTo(0f) } }) { Text( text = "abcde", modifier = Modifier.offset { IntOffset(x.value.roundToInt(), 0) }, ) } } } }

На экране текст прыгает к началу без анимации после snapTo в корутине.

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

  • метод animateTo,
    который ведёт value плавно
  • метод stop,
    который останавливает текущую анимацию
  • класс Animatable,
    которому принадлежит snapTo
  • функция animateFloatAsState,
    если нужен автоматический переход без snapTo
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить