You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jetpack Compose中可选中Card的重载方法在哪里?

Material3 1.0.0-beta03 可选中Card的实现方案

在你使用的androidx.compose.material3:material3:1.0.0-beta03版本中,官方确实没有提供直接带选中状态的Card重载方法,Javadoc提到的"可选中Card"需要通过状态结合修饰符手动实现,具体方式如下:

  • 基础可选中实现:使用selectable修饰符绑定选中状态,同时指定交互角色(如复选框或单选按钮):

    var isSelected by remember { mutableStateOf(false) }
    
    Card(
        modifier = Modifier
            .selectable(
                selected = isSelected,
                onClick = { isSelected = !isSelected },
                role = Role.Checkbox // 根据需求选择Role.RadioButton
            )
    ) {
        // Card内部内容布局
    }
    
  • 增强视觉反馈:配合CardDefaults.cardColors根据选中状态切换容器颜色,强化选中效果:

    Card(
        colors = CardDefaults.cardColors(
            containerColor = if (isSelected) {
                MaterialTheme.colorScheme.secondaryContainer
            } else {
                MaterialTheme.colorScheme.surface
            }
        ),
        modifier = Modifier.selectable(...)
    ) {
        // 内容布局
    }
    

需要注意的是,带selected参数的Card重载是在Material3后续稳定版本中才新增的特性,beta03版本尚未包含该实现,因此需要通过上述组合方式来达成可选中的Card效果。

内容的提问来源于stack exchange,提问作者Florian Reisinger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 19:20:40