Ответ 1
Класс изменился на:
androidx.cardview.widget.CardView
Если вы хотите использовать старые имена классов, вам нужно добавить android:enableJetifier=true
в ваши gradle.properties
и использовать взамен зависимости appcompat.
Как добавить cardview в макет xml в AndroidX
После обновления до AndroidX
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp">
выдает ошибку
Следующие классы не могут быть найдены: - android.support.v7.widget.CardView (исправление пути сборки, редактирование XML, создание класса)
dependencies {
implementation 'androidx.appcompat:appcompat:1.0.0'
implementation 'androidx.cardview:cardview:1.0.0'
но я не знаю, как использовать CardView в XML под AndroidX
Спасибо
Класс изменился на:
androidx.cardview.widget.CardView
Если вы хотите использовать старые имена классов, вам нужно добавить android:enableJetifier=true
в ваши gradle.properties
и использовать взамен зависимости appcompat.
Добавьте 'androidx.cardview: cardview: 1.0.0' в зависимости gradle и измените xml соответствующим образом.
Для AndroidX: добавьте зависимости gradle
implementation 'androidx.cardview:cardview:1.0.0'
Тогда в xml-макете используйте
<androidx.cardview.widget.CardView
Я думаю, что Best Approach
должен быть похож на понимание проблемы в первую очередь.
Сценарий:
.Решение:
Перейдите на страницу сопоставлений артефактов на сайте разработчиков Android и найдите нужную библиотеку.
Теперь перейдите на страницу выпусков AndroidX и проверьте номер текущей версии.
теперь перейдите к build.gradle[module.app]
и добавьте нужную библиотеку. (т.е. в моем случае CardView) и нажмите
Sync Now
, и необходимые файлы будут добавлены в ваш проект gradle.
См.изображение ниже:
Теперь в XML файле вы должны получить CardView или что-то, что вы только что импортировали.
Примечание: включенные здесь фотографии (первые два) взяты со страницы Android Developer, принадлежащей Google Inc, и могут отличаться в зависимости от времени просмотра. Смотрите этот пост время публикации.
Заменить эту строку
от
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
отдо
<androidx.cardview.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
Это будет нормально работать в AndroidX.
У вас есть 2 варианта:
Просто добавьте:
implementation 'com.google.android.material:material:1.1.0-beta01'
и в своем xml вы можете использовать:
<com.google.android.material.card.MaterialCardView
...>
Просто добавьте:
implementation 'androidx.cardview:cardview:1.0.0'
и в своем xml вы можете использовать:
<androidx.cardview.widget.CardView>
Они разные:
MaterialCardView
расширяет androidx.cardview.widget.CardView
и предоставляет все функции CardView, но добавляет атрибуты для настройки обводки и по умолчанию использует обновленный стиль материала (по умолчанию используется стиль Widget.MaterialComponents.CardView
)
implementation com.google.android.material:material:1.0.0
в
implementation com.google.android.material:material:1.0.0-alpha1
это скачать все классы, связанные с дизайном. это работа для меня