无法让 Jetpack Compose 重新组合

Can't make Jetpack Compose to recompose

我构建了一个惰性列,在其中的每一行上都设置了指针侦听器。我想要的是,在任何一行上长按后,接下来的点击将处于选择模式并更改该行的背景颜色。长按按预期工作,但之后的点击虽然正确接收事件并设置关联值,但似乎没有使 UI 刷新(或重新组合),因此未设置背景颜色。有什么想法吗?

var selectedIndex by remember { mutableStateOf(-1) }

LazyColumn {
    itemsIndexed(lazyPagingItems) { index, row ->
        Row(
            modifier = Modifier
                .fillMaxWidth()
                .pointerInput(Unit) {
                    detectTapGestures(
                        onLongPress = {
                            onLongClickAction(row, index)
                            selectedIndex++
                        },
                        onTap = {
                            println("clicked $index $selectMode")
                            if (!selectMode) {                                  
                                println("$index " + colorSelected(index))
                            } else {
                                selectMap[index] = row
                            }
                            selectedIndex++
                            println("$index " + colorSelected(index))
                        }
                    )
                }
                .background(colorResource(colorSelected(index))),

            horizontalArrangement = Arrangement.SpaceBetween
        ) {
             Text(
                text = index.toString(),
                modifier = Modifier.padding(end = 2.dp)
            )
        }
    }
}

您没有在代码中的任何地方阅读 var selectedIndex by remember { mutableStateOf(-1) } 是什么触发了任何 Composable 读取 mutableState 值更改时的重组。您可以检查 以进行智能重组。