#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, и у меня есть вывод, которым я хотел бы поделиться:
- Компонент android.support.v7.widget.CardView является частью старой библиотеки, и ее рекомендуется заменить на com.google.android.material.card.MaterialCardView
- Библиотека поддержки 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, но добавляет атрибуты для настройки штриха и использует обновленный стиль материала по умолчанию.