Почему анимация не работает, как ожидалось?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Почему анимация не работает, как ожидалось?

Сообщение Anonymous »

Я попытался сделать простую анимацию, используя JetPack Compose, что, когда кнопка нажимает текст. Кнопка будет перемещаться из-за левого направления с вращением, а текст будет видим, идущий справа налево. Но возникает небольшая проблема, когда я нажимаю кнопку на кнопку, чтобы запустить анимацию, моя кнопка движется к другому значению смещения (перед запуском анимации) внезапно, а затем она делает анимацию и наоборот для закрытия анимации.
Я не знаю, почему этот внезапный сдвиг кнопки приходит во время анимации. Я смиренно прошу помочь мне с этим.@Composable
fun AnimateWithFadingIn(modifier: Modifier = Modifier){
var isShowing by remember { mutableStateOf(false) }

val iconOffset by animateDpAsState(
targetValue = if (isShowing) 80.dp else (0).dp,
label = "",
animationSpec = tween(durationMillis = 1000)
)
val rotationAngle by animateFloatAsState(
targetValue = if (isShowing) 360f else 0f,
animationSpec = tween(durationMillis = 1000)
)

Column(
modifier = modifier.fillMaxSize(),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
) {
Row {
AnimatedVisibility(
visible = isShowing,
enter = slideInHorizontally(initialOffsetX = {it},animationSpec = tween(durationMillis = 1000)) + fadeIn(animationSpec = tween(durationMillis = 1000)),
exit = slideOutHorizontally (targetOffsetX = {it/2},animationSpec = tween(durationMillis = 1000)) + fadeOut(animationSpec = tween(durationMillis = 1000))
) {
Text("Text is showing")
}
if (isShowing){
Spacer(modifier = Modifier.width(8.dp))
}
IconButton(modifier = Modifier.size(40.dp).offset(x = iconOffset).rotate(degrees = rotationAngle), onClick = {isShowing = !isShowing}) {
Icon(imageVector = Icons.Default.Clear, contentDescription = null)
}
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/794 ... s-expected
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»