Jetpack:028-Jetpack中的Card

本文详细介绍了JetpackCompose中的Card组件概念、使用方法,包括形状、颜色、边框和阴影设置,以及ElevatedCard和OutlinedCard的特殊样式。通过示例代码展示了如何创建和定制Card组件。
摘要由CSDN通过智能技术生成


我们在上一章回中介绍了Jetpack中Switch相关的内容,本章回中 主要介绍Card。闲话休提,让我们一起Talk Android Jetpack吧!

1. 概念介绍

我们在本章回中介绍的Card是一种组件,它提供了一块空间,空间内可以包含其它的组件,同时通过阴影给该空间创造出立体效果,看上去比较漂亮。它通常用在一些广告或者宣传场景中。

在早期的View体系中没有该组件,后来加入到了View中。我们在这里介绍的是jectpack compose中的Card,它和View中Card类似,它通过可组合函数Card来实现,我们将在本章回中详细介绍它的使用方法。

2. 使用方法

2.1 主要类型

可组合函数Card提供了相关的参数来控制自己,下面是常用的参数:

  • shape参数:主要控制Card的形状,常用来修改圆角;
  • border参数:主要用来控制Card外层的边框的宽度和颜色;
  • colors参数: 主要用来控制Card背景颜色和内部组件的颜色;
  • elevation参数:主要用来控制Card的阴影,值越大阴影效果越明显;
  • content参数:主要用来存放Card中包含的其它组件,可是包含多个组件;

上面这些参数中,前四个参数都是控制Card的风格,比如形状,颜色等。最后一个参数主要用来控制Card中包含的内容,它是lambda类型,因此通常使用尾lambda的语法,在函数体内添加被包含的其它组件,我们将在稍后的小节中通过示例代码来演示它的使用方法。此外,Card还有一个onClick参数,该参数主要用来响应点击事件,不过官方文档中不建议使用它,称它还在试验阶段。

2.2 其它类型

在compose中还有其它类型的Card,它们是在Card的基础上自带了一些样式,这样使用起来方便一些。下面是其它Card的分类介绍:

  • ElevatedCard:在默认Card的基础上淡化了背景颜色;
  • OutlinedCard:在默认Card的基础上淡化了背景,强化了边框;

这两种类型Card的用法和默认Card的用法完全相同,因此我们就不再介绍了,我们将在稍后的小节中通过示例代码来演示这两种Card的使用方法。

3. 示例代码

Card(//自带圆角,必须指定大小,否则使用wrap_content大小,默认灰色背景
    modifier = Modifier
        .background(color = Color.Blue)
        .size(width = 300.dp, height = 100.dp)
        .align(Alignment.CenterHorizontally),
    colors = CardDefaults.cardColors(
        containerColor = Color.Yellow,
        contentColor = Color.Red
    ),
    //修改圆角的大小
    shape = RoundedCornerShape(18.dp),
    //修改边框的男宽度和颜色
    border = BorderStroke(width = 2.dp, color = Color.Red),
    //调整阴影的范围
    elevation = CardDefaults.cardElevation(defaultElevation = 8.dp)
) {
    Text(//两处对齐都不起作用
        modifier = Modifier.padding(8.dp),
        text = "Custom card",
        textAlign = TextAlign.Center)
}

//背景比默认的淡一些
ElevatedCard (
    modifier = Modifier.size(width = 300.dp, height = 100.dp))
{
        Text(
            modifier = Modifier.padding(8.dp),
            text = "Elevated card",
            textAlign = TextAlign.Center)
}

//自带一个边框
OutlinedCard (
    modifier = Modifier.size(width = 300.dp, height = 100.dp) ){
    Text(
        modifier = Modifier.padding(8.dp),
        text = "Outlined card",
        textAlign = TextAlign.Center)
}

上面的示例代码中演示Card的用法,并且在代码中添加了详细的注释。此外还包含另外两种不同形式Card的用法,编译并且运行上面的程序,可以得到以下运行效果
在这里插入图片描述

4. 内容总结

最后,我们对本章回的内容做统一的总结:

  • Card可以提供一个自带阴影和背景的局部空间;
  • Card通过相关的参数自身的风格,主要是颜色和背景;
  • Card还有两种子类型,它们只是风格不同,使用方法完全相同;

看官们,与Jetpack中导航相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值