【问题标题】: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.就好了

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-21
        • 1970-01-01
        • 1970-01-01
        • 2011-06-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多