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

Jetpack Compose 中如何正确去除 Card 组件的边框?

Jetpack Compose Card组件去除边框/阴影解决方案

问题原因

你看到的类边框效果并非border属性绘制的边框,是Card组件默认携带的阴影(由elevation属性控制),你当前设置border为0dp透明的操作仅能隐藏显性边框,对默认阴影无效。

实现方法

根据你使用的依赖库版本,对应修改Card的elevation属性即可:

1. Material2版本Card

直接给elevation参数赋值0dp即可,多余的透明border配置可以删除:

Card(
    shape = RoundedCornerShape(0.dp),
    elevation = 0.dp, // 核心配置:取消阴影
    modifier = Modifier
        .height(100.dp)
        .padding(start = 10.dp, top = 40.dp, end = 10.dp)
) {
    Column(
        modifier = Modifier
            .fillMaxWidth()
            .clickable {
                submit()
            },
    ) {
        Text(
            modifier = Modifier
                .weight(1f)
                .padding(start = 20.dp, top = 20.dp, bottom = 20.dp)
                .wrapContentWidth(Alignment.Start),
            text = "Submit",
            style = typography.h4,
        )
    }
}

2. Material3版本Card

elevation需要通过CardDefaults.cardElevation指定所有交互状态下的阴影值都为0dp:

Card(
    shape = RoundedCornerShape(0.dp),
    elevation = CardDefaults.cardElevation(
        defaultElevation = 0.dp,
        pressedElevation = 0.dp,
        focusedElevation = 0.dp,
        hoveredElevation = 0.dp,
        draggedElevation = 0.dp,
        disabledElevation = 0.dp
    ),
    modifier = Modifier
        .height(100.dp)
        .padding(start = 10.dp, top = 40.dp, end = 10.dp)
) {
    // 内部内容保持不变
}

如果修改后仍有边框残留,可额外给Card设置border = null,覆盖主题默认的border配置。


内容的提问来源于stack exchange,提问作者Muhammad Zaryab Rafique

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 23:45:03