【问题标题】:Why use a CardView instead of a RelativeLayout or LinearLayout?为什么使用 CardView 而不是 RelativeLayout 或 LinearLayout?
【发布时间】:2019-05-25 18:29:09
【问题描述】:
我有一个 RecyclerView 用于显示项目列表。 android给出了这个android CardView类来显示卡片布局。
如果我使用 RelativeLayout 并将其背景设置为白色,它的工作方式相同。同样在 CardView 的情况下,我无论如何都必须为其添加一个子布局,它基本上包含卡内的所有视图。
所以我想知道使用 CardView(实际上增加了视图的层次结构)而不是直接使用普通布局是否有任何好处。
【问题讨论】:
标签:
android
android-layout
android-cardview
android-recyclerview
【解决方案1】:
卡片相对于布局有一些优势,包括:
- 圆角、立面等 - 只需使用卡片即可“开箱即用”的视觉改进
- 它们支持各种长度的内容。实际上布局也支持这一点,但在列表/网格视图的上下文中,它们应该具有相同的大小,而卡片的长度可能会有所不同(例如,当您显示 cmets 或描述时)
- 同一层级上的卡片可以有不同类型的内容/视图,而布局(列表/网格项)在显示集合时应该具有相似的布局
所有这些和其他功能都可以在卡片的design guideline 中找到。
简而言之:
- 当我想要显示可能具有不同长度/高度的项目集合时,我会使用卡片,具体取决于其内容(例如带有描述和 cmets 的图片)或大量补充操作。
- 当我想显示一个简单的项目集合时,我会使用相对/线性布局,所有/大多数项目都具有相同的布局和有限数量(最多 1,2 行)的文本、图标和操作,ETC。所有项目都相同的元素
【解决方案2】:
CardView 是谷歌设计 RecyclerView 的方式。您始终可以使用 RelativeLayout 或任何其他首选方法。
根据谷歌的设计指南,CardView 的定义是
卡片是一种显示内容的便捷方式
不同的元素。它们也非常适合展示元素
其大小或支持的操作各不相同,例如带有标题的照片
可变长度。
使用 CardView,您可以在整个应用中获得默认的 Google 外观。您可以根据需要自定义卡片视图。这就是为什么您需要在 CardView 中拥有子布局的原因。 Plus Material Design 是关于高度、颜色和动画的。 CardView 可以以相对简单的方式拥有所有这些。
如果你能通过Google's design guide lines on CardView.就好了