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

27

我有一个RecyclerView用于显示项目列表。 Android提供了CardView类来显示卡片布局。如果我使用RelativeLayout并将其背景设置为白色,它的工作方式相同。此外,在使用CardView时,我必须添加一个包含卡片内所有视图的子布局。因此,我想知道是否使用CardView(实际上增加了视图的层次结构)比直接使用普通布局有任何好处。

2个回答

24

卡片相对于布局有一些优势,包括:

  • 圆角、高度等 - 只需使用卡片就可以获得的视觉改进
  • 它们支持各种长度的内容。实际上,布局也支持这一点,但在列表/网格视图的上下文中,它们应该具有相同的大小,而卡片可以在长度上变化(例如当您显示评论或描述时)
  • 同层级的卡片可以具有不同类型的内容/视图,而布局(列表/网格项)则应该在显示集合时具有相似的布局

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

简而言之:

  • 当我想要显示可能根据其内容具有不同长度/高度(如带有说明和评论的图片)或大量辅助操作的项目集合时,我会使用卡片。
  • 当我想要显示一个简单的项目集合时,其中所有/大多数项目具有相同的布局和有限数量(最多1,2行)的文本、图标和动作等元素,而这些元素对于所有项目都是相同的时,我将使用相对/线性布局。

4

CardView是Google的一种样式化RecyclerView的方式。您始终可以使用RelativeLayout或任何其他首选方法。

根据Google的设计指南,CardView的定义为:

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

使用CardView,您可以在整个应用中获得默认的Google外观和感觉。您可以根据需要自定义cardview。这就是为什么您需要在CardView内部具有子布局。另外,Material Design注重海拔高度、颜色和动画。相对容易地实现所有这些功能。

如果您浏览Google关于CardView的设计指南,会更好。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接