Я новичок в Kotlin и Compose. Используя онлайн-руководства, мне удалось создать очень простые пользовательские интерфейсы. Теперь у меня возникла проблема: один из моих пользовательских интерфейсов не перекомпоновывается, когда я использую свойство класса в составном элементе. Ниже мой код. Я создаю класс, у которого есть свойство INT, которое инициализируется значением 3, и метод, который увеличивает значение этого свойства. Я использую значение свойства в тексте кнопки.
Код: Выделить всё
class Cards {
var number: Int = 3
fun incNum() {
number++
}
}
@Composable
fun TestApp() {
val myCard by remember { mutableStateOf(Cards()) }
Column(
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center,
modifier = Modifier.fillMaxSize(),
) {
Button(onClick = {
myCard.incNum()
}) {
Text(
text = "Clicks: ${myCard.number}",
fontSize = 50.sp,
)
}
}
}
Когда я нажимаю кнопку, значение свойства увеличивается, но новое значение не отображается в тексте кнопки. Я использовал отладчик и убедился, что новое значение свойства сохраняется между щелчками (3, 4, 5 и т. д.), но рекомпозиция не происходит.
Я не понимаю, почему Пользовательский интерфейс не будет обновляться. Любая помощь в этом будет принята с благодарностью. Дайте мне знать, если вам нужна дополнительная информация о проблеме.
Подробнее здесь:
https://stackoverflow.com/questions/788 ... ck-compose