当前位置: 首页 > 知识库问答 >
问题:

为什么使用CardView而不是RelativeLayout或LinearLayout?

邓俊英
2023-03-14

我有一个回收站视图,用于显示项目列表。有这个android CardView类由android给出,以显示卡片布局。如果我使用相对布局并将其背景设置为白色,它的工作方式相同。此外,在CardView的情况下,我必须无论如何添加一个儿童布局,基本上包含卡内的所有视图。所以我想知道使用CardView(实际上增加了视图的层次结构)而不是直接使用普通的Layout是否有任何好处。

共有2个答案

湛联
2023-03-14

CardView是谷歌设计回收视图的方式。您始终可以使用RelativeLayout或任何其他首选方法。

根据谷歌的设计指南,CardView的定义是

卡片是显示由不同元素组成的内容的便捷方式。它们也非常适合展示大小或支持的操作不同的元素,例如带有可变长度标题的照片。

使用CardView,您可以在整个应用程序中获得默认的谷歌外观。您可以根据需要自定义cardview。这就是为什么您需要在CardView中具有子布局的原因。加上材料设计是所有关于,海拔,颜色和动画。CardView可以以相对简单的方式实现所有这些功能。

如果你在CardView上浏览谷歌的设计指南,那就太好了。

符懿轩
2023-03-14

与布局相比,卡片有一些优点,包括:

  • 圆角、立面等-仅使用卡片即可实现“开箱即用”的视觉改进
  • 它们支持不同长度的内容。实际上,布局也支持这一点,但在列表/网格视图的上下文中,它们的大小应该相同,而卡片的长度可以不同(例如,当您显示注释或描述时)
  • 同一层次结构级别上的卡片可以具有不同类型的内容/视图,而布局(列表/网格项)在显示集合时应该具有类似的布局

所有这些和其他功能都可以在卡的设计指南中找到。

总之:

  • 当我想显示一组项目时,我会使用卡片,这些项目的长度/高度可能会因其内容(如带有说明和注释的图片)或大量补充动作而有所不同
 类似资料:
  • 示例:类中的字段使用。 如果差异太小,那么为什么这些数据类型(、)会存在呢?

  • 很多人问了此问题,说bzero已经被posix-2008废弃,为何还使用bzero。选择bzero而不是memset,有2个原因: bzero有2个参数,指针和长度,很明确就是将制定size的内存初始化为0。而memset有3个参数,需要记忆参数的位置,有不少人经常把长度和初始化值搞错。 bzero比memset的可读性要好。memset可以制定初始化的值,实际上绝大多数情况都是0。 一旦新版本g

  • 问题内容: 我不确定为什么列出项目时为什么需要使用ul-li而不是简单地使用div。我可以使两者看起来完全一样,因此与创建div相比,创建无序列表的功能优势在哪里? 问题答案: 为了语义正确。HTML具有表达事物列表的功能,它可以帮助Google机器人,屏幕阅读器以及所有不仅仅关心网站外观的用户更好地了解您的内容。

  • 问题内容: 的OpenJDK代码包括以下行: 为什么在这里使用,而不是?我很好奇。 问题答案: 要强调的是,数字是2的幂,而不是一个完全任意的选择。因此,它警告开发人员尝试不同的数字,他们应该在模式中使用其他数字(例如或,而不是),这样他们就不会破坏依赖于两个要求的幂的方法。有评论略高于: 任何一个的容量(表长度)始终是2的幂。之所以这样设计,是因为它允许使用快速的按位AND操作()将每个键的哈希

  • 我花了很多时间来解决这个问题。我是GRAILS和GROOVY中的begginer。我有一个名为“tms\u dev”的旧oracle数据库模式。此架构有一些表(例如checktypes表)。此外,我还有由GRAILS生成的域类Checktype和ChecktypesController类-controller。 此类具有列表方法: def列表(最大整数){ } 我还配置了Datasource。gr

  • 问题内容: 我想知道为什么Arrays类的sort方法要求一个Object []类型的参数。为什么参数不是Comparable []类型。如果不传递Comparable [],它将生成ClassCastException。 为什么… public static void sort(Object [] a) 而不是 public static void sort(Comparable [] a) ?