在Compose v1.3.3中,尝试实现水平等间距分布的三个项目,并具有显示/隐藏其中一些选项。
如果使用简单的if语句在Compose中包含视图,则所有功能都正常(没有动画)。
Row(
modifier = modifier.fillMaxWidth(),
verticalAlignment = Alignment.CenterVertically
) {
Text(text = "abc", modifier = modifier.weight(1f))
if (false) {
Text(text = "def", modifier = modifier.weight(1f))
}
if(true) {
Text(text = "zxc", modifier = modifier.weight(1f))
}
}
一旦使用AnimatedVisibility进行包装,作为条件的UI就会变得不稳定。Row(
modifier = modifier.fillMaxWidth(),
verticalAlignment = Alignment.CenterVertically
) {
Text(text = "abc", modifier = modifier.weight(1f))
AnimatedVisibility(visible = false) {
Text(text = "def", modifier = modifier.weight(1f))
}
AnimatedVisibility(visible = true) {
Text(text = "zxc", modifier = modifier.weight(1f))
}
}
似乎可见性和大小同时更改可能会破坏用户界面。
有没有一种平滑动画的方法,而不需要实现非常定制化的动画?