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

时间:2015-06-18 08:44:39

标签: android android-layout android-cardview android-recyclerview

我有一个RecyclerView用于显示项目列表。 Android有一个Android的CardView类来显示卡片布局。 如果我使用RelativeLayout并将其背景设置为白色,则它的工作方式相同。同样在CardView的情况下,我必须添加一个childlayout,它基本上包含卡内的所有视图。 所以我想知道他们使用CardView是否有任何好处(实际上增加了视图的层次结构),而不是直接使用普通的布局。

2 个答案:

答案 0 :(得分:18)

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

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

所有这些和其他功能都可以在卡片design guideline中找到。

简而言之:

  • 当我想要显示一组可能具有不同长度/高度的项目时,我会使用卡片,这取决于他们的内容(如带有描述和评论的图片)或大量的补充操作。
  • 当我想要显示一个简单的项目集合时,我会使用相对/线性布局,所有项目/大多数项目具有相同的布局和有限数量(最多1,2行)的文本,图标和动作,等等。所有项目相同的元素

答案 1 :(得分:3)

CardView是Google建立RecyclerView样式的方式。您始终可以使用RelativeLayout或任何其他方法。

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

  

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

使用CardView,您可以在整个应用中获得默认的Google外观。您可以根据需要自定义cardview。这就是为什么你需要在CardView中拥有子布局。 Plus Material Design是关于,高程,颜色和动画的全部。 CardView可以以相对简单的方式拥有所有这些。

如果你通过Google's design guide lines on CardView.

那就太好了