我想知道使用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>
答案 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
作为背景(它允许shaping和elevation overlays for Dark Themes)。
MaterialCardView
还支持checking和dragging。
答案 1 :(得分:2)
最近几天,我对Android库的历史进行了研究,得出了我想分享的结论:
- 组件android.support.v7.widget.CardView是旧库的一部分,建议将其替换为 com.google.android.material.card.MaterialCardView
- Android支持库(android.support。*)是一个旧的库,已在2018年被新的Android X库(属于Jetpack库的一部分)和材质组件android
取代。
参考:
https://medium.com/@neerajmoudgil/upgrading-to-new-android-material-design-components-e62ddb03c3d2
https://developer.android.com/reference(它很大,但是值得一看的初学者谁想要了解Android库的历史以及所有Android版本)
答案 2 :(得分:2)
MaterialCardView是基于Android支持库中CardView的可自定义组件。 MaterialCardView提供了CardView的所有功能,但添加了用于自定义笔触的属性,并且默认情况下使用更新的Material样式。