在 Jetpack Compose 中将对话框组件动画化

问题描述 投票:0回答:1

我目前有一个可以为其内容添加动画效果的对话框。它显示如下,其中 AnimatedScaleInTransition 是一个 AnimatedVisibility Composable,它扩展/收缩并使用 content() 作为其输入。它工作正常,对话框启动其褪色的背景,然后动画滑入。

 Dialog(onDismissRequest = {
    coroutineScope.launch {
        startDismissWithExitAnimation(animateTrigger, onDismissRequest)
    }
}
) {
    Box(
        modifier = modifier
    ) {
        AnimatedScaleInTransition(time = 200, visible = animateTrigger.value) {
            content()
        }
    }
}

我想做的是在第一个对话框上动画另一个对话框。当我这样做时,我得到的不是正常的褪色灰色对话框背景,而是一个白色的背景,它只是弹出了丑陋的头部,然后是动画。它还使用我尝试过的自定义对话框执行此操作,忽略其他封闭的可组合项。我错过了什么?

kotlin dialog android-animation jetpack
1个回答
0
投票

尝试使用 AnimatedVisibility 来处理多个项目的过渡动画。 我希望这对你有帮助

AnimatedVisibility(
            visible = conditionToShowDialog1,
            enter = fadeIn(),
            exit = fadeOut()
        ) {
            Dialog1Body()
        }
        AnimatedVisibility(
            visible = conditionToShowDialog2,
            enter = fadeIn(),
            exit = fadeOut()
        ) {
            Dialog2Body()
        }

在任何变化的条件下,后面的可组合项将添加到合成中或使用定义的进入和退出动画删除

© www.soinside.com 2019 - 2024. All rights reserved.