小编卡尔斯*_*路西法的帖子

Jetpack Compose Lazy Column 单选

我正在从服务器获取数据并将其显示在列表中,可以一键选择每个项目以显示按钮,但我无法关闭它,只能打开它。

这是列表类的项目

data class Task(
    val deviceName: String,
    val deviceId: String,
    var selected :Boolean= Boolean,
)
Run Code Online (Sandbox Code Playgroud)

这是数据类

data class TaskStatus(
    val taskList: SnapshotStateList<Task>  = SnapshotStateList(),
    val selectedNumber: Int = -1,
)
Run Code Online (Sandbox Code Playgroud)

我的ViewModel

private val _status = MutableStateFlow(TaskStatus())
val status = _status.asStateFlow()

fun getList(){
  ...
  for(item in result){
    _status.value.taskList.add(task)
  }
}
fun selectTask(task: Task) {
  val list = _status.value.taskList
  val selectNumber = _status.value.selectedNumber
  val newSelectNumber = list.indexOf(task)
    if (newSelectNumber != selectNumber) {
      if (selectNumber != -1) {
        list[selectNumber].selected.value = false …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-jetpack-compose lazycolumn compose-recomposition

8
推荐指数
1
解决办法
1524
查看次数