AnimatedVisibility не работает с весамиAndroid

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

Сообщение Anonymous »

Вот простой пример, воспроизводящий мою проблему:

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

@Composable
fun AnimatedVisibilityEx(modifier: Modifier = Modifier) {
var visible by remember { mutableStateOf(true) }

Box(modifier = modifier.fillMaxSize()) {
Column(horizontalAlignment = Alignment.CenterHorizontally) {

Box(
modifier = Modifier
.fillMaxWidth()
.weight(1f)
.background(Color.LightGray)
.border(width = 2.dp, color = Color.Blue, shape = CircleShape)
)

AnimatedVisibility(
modifier = Modifier.weight(1f),
visible = visible
) {
Box(
modifier = Modifier
.fillMaxWidth()
.background(MaterialTheme.colorScheme.primary)
)
}

Box(
modifier = Modifier
.fillMaxWidth()
.weight(1f)
.background(Color.LightGray)
.border(width = 2.dp, color = Color.Red, shape = CircleShape)
)

Button(
onClick = { visible = !visible },
modifier = Modifier.padding(top = 32.dp)
) {
Text(text = "Toggle Visible")
}
}
}
}
У меня есть 3 коробки одинакового веса. Средний исчезает при нажатии кнопки, и мне нужна хорошая анимация: средний сжимается, а два других расширяются, чтобы одинаково занимать пространство.
Однако анимация не работает. Когда я убираю веса и задаю им высоту, все работает нормально. В чем проблема и как ее исправить?

Подробнее здесь: https://stackoverflow.com/questions/778 ... th-weights
Ответить

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

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

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

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

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