Почему модификатор. AnimateEnterExit () работает в одном случае, но не в другом?Android

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

Сообщение Anonymous »

В JetPack Compose я пытался использовать анимационную визиру с модификатором .AnimateNeTerExit (). Но я не могу понять, что в одном из моих случаев модификатор AnimateNeTerExit () правильно переоценивает анимацию родителя, но во втором. нет. Я не могу точно определить реальную проблему. Я смиренно прошу, пожалуйста, помочь мне решить эту проблему.

Код: Выделить всё

@OptIn(ExperimentalAnimationApi::class)
@Composable
fun CustomAnimatedVisibilityDemo(
modifier: Modifier = Modifier
) {
var visible by remember { mutableStateOf(true) }

Column(
modifier = modifier.fillMaxSize(),
verticalArrangement = Arrangement.spacedBy(16.dp),
horizontalAlignment = Alignment.CenterHorizontally
) {
// Wrap everything inside AnimatedVisibility
AnimatedVisibility(
visible = visible,
enter = fadeIn(animationSpec = tween(1000)) + slideInVertically(initialOffsetY = { -it }),
exit = fadeOut(animationSpec = tween(1000)) + slideOutVertically(targetOffsetY = { it })
) {
Column(
verticalArrangement = Arrangement.spacedBy(16.dp)
) {
// First Box with default parent animation (fadeIn & fadeOut)
Box(
modifier = Modifier
.size(200.dp)
.clip(RoundedCornerShape(8.dp))
.background(Color.Green),
contentAlignment = Alignment.Center
) {
Text(text = "Fade Box")
}

// Second Box with a custom slide animation
Box(
modifier = Modifier
.size(200.dp)
.clip(RoundedCornerShape(8.dp))
.background(Color.Blue)
.animateEnterExit(
enter = expandVertically(animationSpec = tween(1200)) + fadeIn(),
exit = shrinkVertically(animationSpec = tween(800)) + fadeOut()
),
contentAlignment = Alignment.Center
) {
Text(text = "Slide Box")
}
}
}

// Toggle visibility button
Button(onClick = { visible = !visible }) {
Text(text = "Toggle")
}
}
}

< /code>
< /li>
[*]  Composable, в котором он не работает: < /p>
@OptIn(ExperimentalAnimationApi::class)
@Composable
fun AnimateAppAndDisApp(
modifier: Modifier = Modifier
) {

var visible by remember { mutableStateOf(false) }

Column(
modifier = Modifier.fillMaxSize(),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
Button(onClick = { visible = !visible }) {
Text(if (visible) "Hide" else "Show")
}

Spacer(modifier = Modifier.height(20.dp))

AnimatedVisibility(
visible = visible,
enter = fadeIn(animationSpec = tween(1000)) + slideInVertically(initialOffsetY = { -it }),
exit = fadeOut(animationSpec = tween(1000)) + slideOutVertically(targetOffsetY = { it })
) {
Column(
modifier = Modifier.fillMaxWidth(),
horizontalAlignment = Alignment.CenterHorizontally
) {
// Default animation
Text("Default Animation 1")

Spacer(modifier = Modifier.height(10.dp))

// Overridden animation
BasicText(
"Custom Animation",
modifier = Modifier.animateEnterExit(
enter = expandVertically(animationSpec = tween(1200)) + fadeIn(),
exit = shrinkVertically(animationSpec = tween(800)) + fadeOut()
)
)

Spacer(modifier = Modifier.height(10.dp))

// Default animation
Text("Default Animation 2")
}
}
}
}



Подробнее здесь: https://stackoverflow.com/questions/793 ... t-in-other
Ответить

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

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

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

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

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