com.google.android.material和android.support.v7.widget的CardView有什么区别

时间:2019-04-10 01:17:22

标签: android cardview

我想知道使用Android Studio IDE组件面板添加的两个小部件“ android.support.v7.widget.CardView”和“ com.google.android.material.card.MaterialCardView”之间的区别在Material Design文档中使用。

这两个库是否包含相同的小部件?我应该使用哪一个,以及如何做出此决定?

我尝试阅读更多有关developers.android的文档,但developer.android上的文档确实很大,有很多版本,但我有点困惑,无法在所有这些版本之间找到很好的解释,这一切的历史以及如何到达那里。有人愿意给我关于这段历史的见识吗?

材料设计文档的用法:

<com.google.android.material.card.MaterialCardView
    android:layout_width="match_parent"
   android:layout_height="wrap_content">
</com.google.android.material.card.MaterialCardView>

来源:https://material.io/develop/android/components/material-card-view/

使用Android Studio时添加的CardView XML:

<android.support.v7.widget.CardView
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
</android.support.v7.widget.CardView>

3 个答案:

答案 0 :(得分:25)

共有3个版本:

  • android.support.v7.widget.CardView:由旧的支持库提供,不建议使用。

  • androidx.cardview.widget.CardView ,它是 androidx 版本,它取代了支持库。
    要使用它,您必须添加依赖项implementation 'androidx.cardview:cardview:x.x.x'

  • com.google.android.material.card.MaterialCardView 材料组件库提供。 要使用它,您必须添加依赖项实现 'com.google.android.material:material:1.1.0'

MaterialCardView 扩展 androidx.cardview.widget.CardView, 引入了一些变化,例如使用 MaterialShapeDrawable 作为背景(它允许shapingelevation overlays for Dark Themes)。
MaterialCardView还支持checkingdragging

答案 1 :(得分:2)

最近几天,我对Android库的历史进行了研究,得出了我想分享的结论:

  
      
  1. 组件android.support.v7.widget.CardView是旧库的一部分,建议将其替换为   com.google.android.material.card.MaterialCardView
  2.   
  3. Android支持库(android.support。*)是一个旧的库,已在2018年被新的Android X库(属于Jetpack库的一部分)和材质组件android
  4. 取代。   

参考:

https://medium.com/@neerajmoudgil/upgrading-to-new-android-material-design-components-e62ddb03c3d2

https://developer.android.com/reference(它很大,但是值得一看的初学者谁想要了解Android库的历史以及所有Android版本)

答案 2 :(得分:2)

根据Material Design docs

  

MaterialCardView是基于Android支持库中CardView的可自定义组件。 MaterialCardView提供了CardView的所有功能,但添加了用于自定义笔触的属性,并且默认情况下使用更新的Material样式。