У меня есть экран статистики, в котором для добавления фильтров используются раскрывающиеся меню. Например, один фильтр содержит все типы игр с флажками рядом с каждой игрой. Изначально в нем отмечены все флажки, поэтому в статистику включены все игры. Когда пользователь снимает отметки с игр, статистика обновляется без тех игр, которые были сняты с отметки. Все работает так, как я хочу, за исключением того, что статистика не будет показывать обновленные значения, пока я не закрою раскрывающееся меню. Флажки обновляются по мере их установки. Я использовал отладку, чтобы увидеть, что статистика обновляется при установке или снятии флажков.
val selectedGame = remember { SnapshotStateList() }
ExposedDropdownMenuBox(
expanded = expandedGame,
onExpandedChange = { onExpandGameChange(it) },
) {
ShowOutlinedTextField(
readOnly = true,
value = stringResource(id = R.string.game_filter),
modifier = Modifier
.padding(10.dp)
.menuAnchor(type = MenuAnchorType.PrimaryNotEditable,
enabled = true)
)
ExposedDropdownMenu(
expanded = expandedGame,
onDismissRequest = { onExpandGameChange(false) }
) {
gameNames.forEach { game ->
DropdownMenuItem(
onClick = { onExpandGameChange(false) },
text = {
Row(
verticalAlignment = Alignment.CenterVertically
) {
Checkbox(
checked =
selectedGame.contains(game.gameName),
onCheckedChange = { isChecked ->
if (isChecked) {
selectedGame.add(game.gameName)
} else {
selectedGame.remove(game.gameName)
}
setSelectedGames(selectedGame.toList())
}
)
Spacer(modifier = Modifier.width(8.dp))
Text(text = game.gameName)
}
}
)
}
}
}
Я попробовал добавить следующий код, но он не сработал.
var forceRecomposition by remember { mutableStateOf(0) }
Checkbox(
checked = selectedLocations.contains(casino.name),
onCheckedChange = { isChecked ->
if (isChecked) {
selectedLocations.add(casino.name)
} else {
selectedLocations.remove(casino.name)
}
setSelectedCasinos(selectedLocations.toList())
forceRecomposition++
}
)
Подробнее здесь: https://stackoverflow.com/questions/791 ... -down-menu
Открытое раскрывающееся меню не изменится, пока я не закрою раскрывающееся меню. ⇐ Android
Форум для тех, кто программирует под Android
1731467201
Anonymous
У меня есть экран статистики, в котором для добавления фильтров используются раскрывающиеся меню. Например, один фильтр содержит все типы игр с флажками рядом с каждой игрой. Изначально в нем отмечены все флажки, поэтому в статистику включены все игры. Когда пользователь снимает отметки с игр, статистика обновляется без тех игр, которые были сняты с отметки. Все работает так, как я хочу, за исключением того, что статистика не будет показывать обновленные значения, пока я не закрою раскрывающееся меню. Флажки обновляются по мере их установки. Я использовал отладку, чтобы увидеть, что статистика обновляется при установке или снятии флажков.
val selectedGame = remember { SnapshotStateList() }
ExposedDropdownMenuBox(
expanded = expandedGame,
onExpandedChange = { onExpandGameChange(it) },
) {
ShowOutlinedTextField(
readOnly = true,
value = stringResource(id = R.string.game_filter),
modifier = Modifier
.padding(10.dp)
.menuAnchor(type = MenuAnchorType.PrimaryNotEditable,
enabled = true)
)
ExposedDropdownMenu(
expanded = expandedGame,
onDismissRequest = { onExpandGameChange(false) }
) {
gameNames.forEach { game ->
DropdownMenuItem(
onClick = { onExpandGameChange(false) },
text = {
Row(
verticalAlignment = Alignment.CenterVertically
) {
Checkbox(
checked =
selectedGame.contains(game.gameName),
onCheckedChange = { isChecked ->
if (isChecked) {
selectedGame.add(game.gameName)
} else {
selectedGame.remove(game.gameName)
}
setSelectedGames(selectedGame.toList())
}
)
Spacer(modifier = Modifier.width(8.dp))
Text(text = game.gameName)
}
}
)
}
}
}
Я попробовал добавить следующий код, но он не сработал.
var forceRecomposition by remember { mutableStateOf(0) }
Checkbox(
checked = selectedLocations.contains(casino.name),
onCheckedChange = { isChecked ->
if (isChecked) {
selectedLocations.add(casino.name)
} else {
selectedLocations.remove(casino.name)
}
setSelectedCasinos(selectedLocations.toList())
forceRecomposition++
}
)
Подробнее здесь: [url]https://stackoverflow.com/questions/79183288/exposed-drop-down-menu-wont-recompose-until-i-close-the-drop-down-menu[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия