Jetpack:028-Jetpack中的Card

news/2025/2/14 7:26:41/

文章目录

  • 1. 概念介绍
  • 2. 使用方法
    • 2.1 主要类型
    • 2.2 其它类型
  • 3. 示例代码
  • 4. 内容总结

我们在上一章回中介绍了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中导航相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!


http://www.ppmy.cn/news/1196810.html

相关文章

orangepi zero2 全志H616 SSD1306 OLED屏幕测试程序 (已附源码)

orangepi zero2 H616 SSD1306 OLED屏幕测试程序 orangepi zero2 配置wiringpi 库后,突发奇想构建一个测试oled屏幕的程序,放一个蜗牛每次移动一个像素点,实时显示蜗牛的步数,后面要显示其他内容在此代码上修改即可,如…

Python基础入门例程32-NP32 牛牛的加减器(运算符)

最近的博文: Python基础入门例程31-NP31 团队分组(列表)-CSDN博客 Python基础入门例程30-NP30 用列表实现队列(列表)-CSDN博客 Python基础入门例程29-NP29 用列表实现栈(列表)-CSDN博客 目录…

MyBatis 详解

目录 1.MyBatis 框架的搭建 1.1 创建数据库和表 1.2 添加 MyBatis 依赖 1.3 设置 MyBatis 配置 1.3.1 设置数据库的连接信息 1.3.2 设置 XML 保存路径和命名格式 1.4 根据 MyBatis 写法完成数据库得操作 1.4.1 定义接口 1.4.2 使用 XML 实现接口 2.MyBatis查询操作 …

配置Raspberry自动连接WIFI,在无法查看路由器的校园网情况下使用自己电脑热点

1、开启电脑热点,并共享电脑WLAN2 打开控制面板->网络和Internet->网络连接 选择自己的校园网,我这里是WLAN2,右键属性,如下操作: 如果没有看到 本地连接*10类似的图标 则按如下操作:winx键&#x…

Day13反转链表两两交换链表中的节点删除链表的倒数第N个节点链表相交环形链表II

反转链表 struct ListNode* reverseList(struct ListNode* head){struct ListNode* preNULL;while(head){struct ListNode* temphead->next;head->nextpre;prehead;headtemp;}return pre; }两两交换链表中的节点 struct ListNode* swapPairs(struct ListNode* head){st…

ConnectionError: HTTPSConnectionPool

ConnectionError: HTTPSConnectionPool(host‘zbbfxstatic.figtingdream.com’, port443): Max retries exceeded with url: /api/cache (Caused by NewConnectionError(‘<urllib3.connection.HTTPSConnection object at 0x00000249795AD9A0>: Failed to establish a ne…

21.合并两个有序链表

#include <iostream>struct ListNode {int val;ListNode* next;ListNode(int x) : val(x), next(nullptr) {} };class Solution { public:ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {ListNode dummy ListNode(-1); // 创建一个虚拟节点作为头节点ListNode* …

C#知识总结 基础篇(下)

目录 5类和继承 5.1类继承 5.2访问继承的成员 5.3屏蔽基类的成员 5.4访问基类的成员 5.5虚方法与覆写方法 5.6构造函数的执行顺序 5.7成员访问修饰符 5.8抽象类 5.9密封类与静态类 6.表达式与运算符 6.1运算符和重载 7.结构 7.1结构体的感念。 7.2结构构造函数与…