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

Jetpack Compose中如何移除Card组件底部的阴影?

移除Card组件底部阴影的可行方法

Compose的Card自带的elevation参数会生成四周均匀的阴影,无法单独控制某一侧的阴影显示。要实现只保留顶部、左右侧阴影,移除底部阴影的效果,你可以放弃Card自带的elevation,改用以下两种方案:

方法一:Box嵌套覆盖底部阴影

通过外层Box添加整体阴影,再用与Card背景色一致的矩形覆盖底部阴影区域:

Box(
    modifier = modifier
        .shadow(elevation = 16.dp, shape = shape)
) {
    Card(
        modifier = Modifier.fillMaxSize(),
        shape = shape,
        backgroundColor = MaterialTheme.colors.surface,
        elevation = 0.dp // 关闭Card自带阴影
    ) {
        // 放置Card内容
    }
    // 覆盖底部阴影的矩形
    Box(
        modifier = Modifier
            .align(Alignment.BottomCenter)
            .fillMaxWidth()
            .height(16.dp) // 高度与阴影elevation值一致
            .background(MaterialTheme.colors.surface)
    )
}

方法二:自定义绘制阴影

通过drawBehind手动绘制仅顶部和左右侧的阴影,完全控制阴影显示范围:

Card(
    modifier = modifier
        .drawBehind {
            val shadowColor = MaterialTheme.colors.shadow
            val elevationPx = 16.dp.toPx()
            
            // 绘制顶部阴影
            drawRect(
                color = shadowColor.copy(alpha = 0.3f),
                top = -elevationPx,
                left = 0f,
                right = size.width,
                height = elevationPx
            )
            // 绘制左侧阴影(底部留空)
            drawRect(
                color = shadowColor.copy(alpha = 0.2f),
                left = -elevationPx,
                top = 0f,
                width = elevationPx,
                height = size.height - elevationPx
            )
            // 绘制右侧阴影(底部留空)
            drawRect(
                color = shadowColor.copy(alpha = 0.2f),
                right = size.width + elevationPx,
                top = 0f,
                width = elevationPx,
                height = size.height - elevationPx
            )
        },
    shape = shape,
    backgroundColor = MaterialTheme.colors.surface,
    elevation = 0.dp // 关闭自带阴影
) {
    // 放置Card内容
}

两种方案都需要将Card的elevation设为0.dp,避免自带阴影干扰最终效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 13:32:33