Есть ли в Compose что-то вроде спойлера (это не слишком похоже на Android)? Или это можно сделать быстро, используя LazyVerticalGrid
или что-то еще? Я ищу ящик, который открывается и одевается, нажав на его заголовок.
То, что вы ищете, это AnimatedVisibility
Composable.
var visible by remember {
mutableStateOf(true)
}
Column(modifier = Modifier.fillMaxSize()) {
Text("Spoiler", modifier = Modifier
.fillMaxWidth()
.clickable {
visible = !visible
}
)
AnimatedVisibility(visible = visible) {
Column {
Text("Lorem ipsum...Rest of the text")
}
}
}
https://developer.android.com/jetpack/compose/animation#animatedvisibility
Да, анимация по умолчанию в некоторых ситуациях выглядит неудобно, но по ссылке вы можете увидеть, что можно применять и другие типы анимации.
Я имею в виду его отставание в некоторых моментах, но, возможно, это из-за отладочной версии, телефона или чего-то еще.
На моем устройстве не лагает, но возможно. Вы должны проверить фактическую производительность в режиме выпуска с параметром minifyEnabled true. developer.android.com/jetpack/compose/performance#config
Выглядит как компонент по умолчанию, но его анимация неудобна.