I'd like to know the difference between both widgets android.support.v7.widget.CardView
which is added using Android Studio IDE components palette and com.google.android.material.card.MaterialCardView
which is used on Material Design documentation.
Are they two libraries that contains the same widget? Which one should I use and how to take this decision?
I tried to read more the developers.android documentation, but the docs on developer.android are really big with many version and I'm yet a bit confused and couldn't find a good explanation between all of these versions, the history of it all and how it got there. Does someone feel happy to gives me a insight about this history?
Material design documentation usage:
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content">
</com.google.android.material.card.MaterialCardView>
Source: https://material.io/develop/android/components/material-card-view/
The CardView XML added when using Android Studio:
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content">
</android.support.v7.widget.CardView>
According to Material Design docs
There are 3 versions:
android.support.v7.widget.CardView
: it is provided by the old support libraries and it is deprecated.androidx.cardview.widget.CardView
it is the androidx version and it replaced the support libraries.To use it you have to add the dependency
implementation 'androidx.cardview:cardview:x.x.x'
.com.google.android.material.card.MaterialCardView
is provided by the Material Components Library. To use it you have to add the dependency implementation'com.google.android.material:material:1.1.0'
.The
MaterialCardView
extends theandroidx.cardview.widget.CardView
and introduces some changes as the use of aMaterialShapeDrawable
as background (it allows shaping and elevation overlays for Dark Themes).Also
MaterialCardView
supports checking and dragging.I made a research in the last days about the history of Android libraries and I've got a conclusion that I'd like to share:
References:
https://medium.com/@neerajmoudgil/upgrading-to-new-android-material-design-components-e62ddb03c3d2
https://developer.android.com/reference (It's big, but worth to take a look for beginners who would like to understand the history of Android Libraries and also about all of the Android Versions)