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

#android #android-cardview #material-components-android #material-components #cardview

#Android #android-cardview #материал-компоненты-android #материал-компоненты #cardview

Вопрос:

Я хотел бы знать разницу между обоими виджетами android.support.v7.widget.CardView , которые добавляются с помощью палитры компонентов IDE Android Studio и com.google.android.material.card.MaterialCardView которые используются в документации по дизайну материалов.

Это две библиотеки, которые содержат один и тот же виджет? Какой из них я должен использовать и как принять это решение?

Я попытался подробнее ознакомиться с документацией 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 /

XML-файл CardView, добавленный при использовании Android Studio:

 <android.support.v7.widget.CardView
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
</android.support.v7.widget.CardView>
  

Комментарии:

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

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

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

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

Ответ №1:

Существует 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 качестве фона (это позволяет накладывать формы и высоты для темных тем).
Также MaterialCardView поддерживает проверку и перетаскивание.

Комментарии:

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

2. com.google.android.material.card.MaterialCardView также по умолчанию имеет селектор переднего плана.

Ответ №2:

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

  1. Компонент android.support.v7.widget.CardView является частью старой библиотеки, и ее рекомендуется заменить на com.google.android.material.card.MaterialCardView
  2. Библиотека поддержки Android (android.support. *) — это старая библиотека, которая была заменена новой библиотекой Android X в 2018 году (которая является частью библиотеки Jetpack), а также material components android

Ссылки:

https://medium.com/@neerajmoudgil/upgrading-to-new-android-material-design-components-e62ddb03c3d2

https://developer.android.com/reference (Он большой, но стоит взглянуть на него новичкам, которые хотели бы разобраться в истории библиотек Android, а также обо всех версиях Android)

Комментарии:

1. О чем androidx.cardview.widget.CardView ?

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

Ответ №3:

Согласно документации Material Design

MaterialCardView — это настраиваемый компонент, основанный на CardView из библиотеки поддержки Android. MaterialCardView предоставляет все функции CardView, но добавляет атрибуты для настройки штриха и использует обновленный стиль материала по умолчанию.