Как добавить cardview в макет xml в AndroidX

Как добавить 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

Спасибо

Ответы

Ответ 1

Класс изменился на:

androidx.cardview.widget.CardView

Если вы хотите использовать старые имена классов, вам нужно добавить android:enableJetifier=true в ваши gradle.properties и использовать взамен зависимости appcompat.

Ответ 2

Добавьте 'androidx.cardview: cardview: 1.0.0' в зависимости gradle и измените xml соответствующим образом.

Ответ 3

Для AndroidX: добавьте зависимости gradle

implementation 'androidx.cardview:cardview:1.0.0'

Тогда в xml-макете используйте

<androidx.cardview.widget.CardView

Ответ 4

Я думаю, что Best Approach должен быть похож на понимание проблемы в первую очередь.

Сценарий:

  • Найдите библиотеку, которую Google Inc изменил для "AndroidX", и включите в проект

.Решение:

Перейдите на страницу сопоставлений артефактов на сайте разработчиков Android и найдите нужную библиотеку.

enter image description here

Теперь перейдите на страницу выпусков AndroidX и проверьте номер текущей версии.

enter image description here

теперь перейдите к build.gradle[module.app] и добавьте нужную библиотеку. (т.е. в моем случае CardView) и нажмите
Sync Now, и необходимые файлы будут добавлены в ваш проект gradle.

См.изображение ниже:

enter image description here

Теперь в XML файле вы должны получить CardView или что-то, что вы только что импортировали.

Примечание: включенные здесь фотографии (первые два) взяты со страницы Android Developer, принадлежащей Google Inc, и могут отличаться в зависимости от времени просмотра. Смотрите этот пост время публикации.

Ответ 5

Заменить эту строку

от

<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.

Ответ 6

У вас есть 2 варианта:

Просто добавьте:

implementation 'com.google.android.material:material:1.1.0-beta01'

и в своем xml вы можете использовать:

 <com.google.android.material.card.MaterialCardView
  ...>
  • Androidx CardView

Просто добавьте:

implementation 'androidx.cardview:cardview:1.0.0'

и в своем xml вы можете использовать:

<androidx.cardview.widget.CardView>

Они разные:

MaterialCardView расширяет androidx.cardview.widget.CardView и предоставляет все функции CardView, но добавляет атрибуты для настройки обводки и по умолчанию использует обновленный стиль материала (по умолчанию используется стиль Widget.MaterialComponents.CardView)

Более подробная информация здесь.

Ответ 7

implementation com.google.android.material:material:1.0.0

в

implementation com.google.android.material:material:1.0.0-alpha1

это скачать все классы, связанные с дизайном. это работа для меня