В чем разница между CardView из com.google.android.material и android.support.v7.widget

Я хотел бы знать разницу между обоими виджетами 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>

Это материальный макет с гораздо более чистым внешним видом.

Gourav 10.04.2019 03:33

Итак, рекомендуется ли использовать android.support/androidx (как я читал, версия старой библиотеки поддержки) вместо того, чтобы следовать руководству по материалам, в котором используется com.google.android.material?

Tarcisio Júnior 10.04.2019 09:24

Нет, я также рекомендую темы Material. Я просто объяснял, чем отличается библиотека материалов и поддержки.

Gourav 10.04.2019 11:32

Обратите внимание, что com.google.android.material.card.MaterialCardView расширяет androidx.cardview.widget.CardView. См. developer.android.com/reference/com/google/android/material/‌​…

Albert Vila Calvo 12.09.2019 14:08
38
4
10 326
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

В последние дни я провел исследование истории библиотек Android и пришел к выводу, которым хочу поделиться:

  1. 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
  2. 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?

argenkiwi 09.10.2019 00:23

Это версия android.cardview @argenkiwi для androidx.

kautilya hari 15.07.2020 21:28

Согласно Документы по дизайну материалов

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 поддерживает проверка и перетаскивание.

Это должен быть лучший ответ. Он предоставляет весь контекст, чтобы полностью понять различия между этими компонентами.

MrWeeMan 19.09.2020 11:07
com.google.android.material.card.MaterialCardView также по умолчанию имеет селектор переднего плана.
Ionut Negru 27.10.2021 12:05

Другие вопросы по теме