What's the difference between the CardView from com.google.android.material and android.support.v7.widget
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 dependencyimplementation '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 the androidx.cardview.widget.CardView
and
introduces some changes as the use of a MaterialShapeDrawable
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:
- The component android.support.v7.widget.CardView is part of an old library and it's recommended to be replaced with com.google.android.material.card.MaterialCardView
- Android support library (android.support.*) is an old library that was replace by the new Android X Library in 2018 (which is part of Jetpack Library) and also by material components android
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)
According to Material Design docs
MaterialCardView is a customizable component based on CardView from the Android Support Library. MaterialCardView provides all of the features of CardView, but adds attributes for customizing the stroke and uses an updated Material style by default.