小编muc*_*gan的帖子

Jetpack Compose 复选框未显示更改状态

我有一个用户可以检查的专业列表。当用户对他们的选择感到满意后,我将收集所选复选框的信息并将这些专业保存在用户的个人资料中。

但是,当我点击任何复选框时,视图模型中的状态会发生变化,但复选框仍处于未选中状态。

专业列表

@Composable
fun SpecialtyList(
    viewModel: SpecialtyListViewModel = hiltViewModel(),
    navController: NavController
) {
    LazyColumn(modifier = Modifier.fillMaxSize()) {
        item {
            viewModel.specialtyList.value.forEach { specialty ->
                Row(
                    modifier = Modifier
                        .fillMaxWidth()
                        .padding(10.dp),
                    verticalAlignment = Alignment.CenterVertically
                ) {
                    Checkbox(
                        checked = specialty.isSelected,
                        onCheckedChange = {
                            specialty.isSelected = it
                        },
                        colors = CheckboxDefaults.colors(MaterialTheme.colors.primary)
                )
                    Text(
                        text = specialty.name,
                        modifier = Modifier
                            .padding(horizontal = 10.dp)
                    )
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

专业视图模型

@HiltViewModel
class SpecialtyListViewModel @Inject constructor() : ViewModel() {

    // HARD-CODED PROPERTIES
    val specialtyList …
Run Code Online (Sandbox Code Playgroud)

android android-checkbox android-jetpack-compose

4
推荐指数
1
解决办法
6235
查看次数