Я хотел бы знать разницу между обоими виджетами android.support.v7.widget.CardView
, который добавляется с помощью палитры компонентов Android Studio IDE, и com.google.android.material.card.MaterialCardView
, который используется в документации по дизайну материалов.
Это две библиотеки, содержащие один и тот же виджет? Какой из них я должен использовать и как принять это решение?
Я попытался прочитать больше документации developer.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/
XML CardView добавлен при использовании Android Studio:
<android.support.v7.widget.CardView
android:layout_width = "match_parent"
android:layout_height = "wrap_content">
</android.support.v7.widget.CardView>
Итак, рекомендуется ли использовать android.support/androidx (как я читал, версия старой библиотеки поддержки) вместо того, чтобы следовать руководству по материалам, в котором используется com.google.android.material?
Нет, я также рекомендую темы Material. Я просто объяснял, чем отличается библиотека материалов и поддержки.
Обратите внимание, что com.google.android.material.card.MaterialCardView
расширяет androidx.cardview.widget.CardView
. См. developer.android.com/reference/com/google/android/material/…
В последние дни я провел исследование истории библиотек Android и пришел к выводу, которым хочу поделиться:
- 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
Использованная литература:
https://medium.com/@neerajmoudgil/upgrading-to-new-android-material-design-components-e62ddb03c3d2
https://developer.android.com/reference (Оно большое, но его стоит посмотреть новичкам, которые хотели бы понять историю библиотек Android, а также обо всех версиях Android)
А как насчет androidx.cardview.widget.CardView
?
Это версия android.cardview @argenkiwi для androidx.
Согласно Документы по дизайну материалов
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.
Есть 3 версии:
android.support.v7.widget.CardView
: он предоставляется старыми библиотеками поддержки и устарел.
androidx.cardview.widget.CardView
это версия андроидx и она заменила библиотеки поддержки.
Чтобы использовать его, вы должны добавить зависимость 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
в качестве фона (это позволяет формирование и наложения высот для темных тем).
Также MaterialCardView
поддерживает проверка и перетаскивание.
Это должен быть лучший ответ. Он предоставляет весь контекст, чтобы полностью понять различия между этими компонентами.
com.google.android.material.card.MaterialCardView
также по умолчанию имеет селектор переднего плана.
Это материальный макет с гораздо более чистым внешним видом.