-
Anonymous
Рынок классов с @Immutable или @Stable все еще нестабильен.
Сообщение
Anonymous »
Я изучаю стабильность и просматриваю эту запись в блоге
https://medium.com/androiddevelopers/je ... c10db270c8, пытаясь локально воспроизвести некоторые сценарии.
Представьте, что у меня есть это:
Код: Выделить всё
ScalingLazyColumn(columnState = scrollState) {
item {
ContactRow(
snacks = listOf(
Snack("Peanut", setOf("alergic", "sweet")),
Snack("Chips", setOf("salty", "bier friendly")),
Snack("Sticks", setOf("salty", "bier friendly"))
),
contact = Contact("Gregory", "123345")
)
}
}
}
}
@Composable
fun ContactRow(snacks: List, contact: Contact) {
var selected by remember { mutableStateOf(false) }
Column {
Row(modifier) {
ContactDetails(contact)
ToggleButton(selected, onToggled = {
selected = !selected
})
}
HighlightedSnacks(snacks)
}
}
@Composable
fun ContactDetails(contact: Contact) {
val modifier = Modifier
.fillMaxWidth()
.background(Color.DarkGray)
.padding(vertical = 8.dp)
Column {
Text(modifier = modifier, text = contact.name, textAlign = TextAlign.Center)
Text(modifier = modifier, text = contact.number, textAlign = TextAlign.Center)
}
}
@Composable
fun ToggleButton(selected: Boolean, onToggled: (Boolean) -> Unit) {
Switch(checked = selected, onCheckedChange = { onToggled(it) })
}
@Composable
fun HighlightedSnacks(list: List) {
Column {
list.forEach {
Text(
modifier = Modifier
.fillMaxWidth()
.padding(vertical = 8.dp),
text = "${it.name} - ${it.tags}",
overflow = TextOverflow.Ellipsis,
textAlign = TextAlign.Center
)
}
}
}
data class Contact(val name: String, val number: String)
@Immutable //
Подробнее здесь: [url]https://stackoverflow.com/questions/79078854/class-market-with-immutable-or-stable-is-still-unstable[/url]
1728662480
Anonymous
Я изучаю стабильность и просматриваю эту запись в блоге https://medium.com/androiddevelopers/jetpack-compose-stability-explained-79c10db270c8, пытаясь локально воспроизвести некоторые сценарии.
Представьте, что у меня есть это:
[code]
ScalingLazyColumn(columnState = scrollState) {
item {
ContactRow(
snacks = listOf(
Snack("Peanut", setOf("alergic", "sweet")),
Snack("Chips", setOf("salty", "bier friendly")),
Snack("Sticks", setOf("salty", "bier friendly"))
),
contact = Contact("Gregory", "123345")
)
}
}
}
}
@Composable
fun ContactRow(snacks: List, contact: Contact) {
var selected by remember { mutableStateOf(false) }
Column {
Row(modifier) {
ContactDetails(contact)
ToggleButton(selected, onToggled = {
selected = !selected
})
}
HighlightedSnacks(snacks)
}
}
@Composable
fun ContactDetails(contact: Contact) {
val modifier = Modifier
.fillMaxWidth()
.background(Color.DarkGray)
.padding(vertical = 8.dp)
Column {
Text(modifier = modifier, text = contact.name, textAlign = TextAlign.Center)
Text(modifier = modifier, text = contact.number, textAlign = TextAlign.Center)
}
}
@Composable
fun ToggleButton(selected: Boolean, onToggled: (Boolean) -> Unit) {
Switch(checked = selected, onCheckedChange = { onToggled(it) })
}
@Composable
fun HighlightedSnacks(list: List) {
Column {
list.forEach {
Text(
modifier = Modifier
.fillMaxWidth()
.padding(vertical = 8.dp),
text = "${it.name} - ${it.tags}",
overflow = TextOverflow.Ellipsis,
textAlign = TextAlign.Center
)
}
}
}
data class Contact(val name: String, val number: String)
@Immutable //
Подробнее здесь: [url]https://stackoverflow.com/questions/79078854/class-market-with-immutable-or-stable-is-still-unstable[/url]