Я работаю с Compose, ViewModel и списком. Я не понимаю, почему мой пользовательский интерфейс не перестраивается, когда я нажимаю кнопку, хотя я генерирую новый список.
data class Dice(var value: Int = 6) {
fun roll() {
value = Random.nextInt(6) + 1
}
}
class MainViewModel : ViewModel() {
var diceVal = MutableStateFlow(listOf(Dice()))
fun rollDice() {
//Both not working
//diceVal.value = diceVal.value.map { it.roll(); it.copy() }
diceVal.update { it.map { it.roll(); it.copy() }}
}
}
@Composable
fun MainScreen(modifier: Modifier = Modifier, viewModel: MainViewModel = viewModel { MainViewModel() }) {
Column(modifier = modifier, horizontalAlignment = Alignment.CenterHorizontally) {
var diceList = viewModel.diceVal.collectAsStateWithLifecycle()
diceList.value.forEach {
Button(onClick = {
viewModel.rollDice()
}) {
Text(text = it.value.toString())
}
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... esh-the-ui
Новый список в Compose не обновляет пользовательский интерфейс. ⇐ Android
Форум для тех, кто программирует под Android
-
Anonymous
1761325260
Anonymous
Я работаю с Compose, ViewModel и списком. Я не понимаю, почему мой пользовательский интерфейс не перестраивается, когда я нажимаю кнопку, хотя я генерирую новый список.
data class Dice(var value: Int = 6) {
fun roll() {
value = Random.nextInt(6) + 1
}
}
class MainViewModel : ViewModel() {
var diceVal = MutableStateFlow(listOf(Dice()))
fun rollDice() {
//Both not working
//diceVal.value = diceVal.value.map { it.roll(); it.copy() }
diceVal.update { it.map { it.roll(); it.copy() }}
}
}
@Composable
fun MainScreen(modifier: Modifier = Modifier, viewModel: MainViewModel = viewModel { MainViewModel() }) {
Column(modifier = modifier, horizontalAlignment = Alignment.CenterHorizontally) {
var diceList = viewModel.diceVal.collectAsStateWithLifecycle()
diceList.value.forEach {
Button(onClick = {
viewModel.rollDice()
}) {
Text(text = it.value.toString())
}
}
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79798983/new-list-in-compose-doesnt-refresh-the-ui[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия