Зачем использовать CardView вместо RelativeLayout или LinearLayout?

У меня есть RecyclerView для отображения списка элементов. Существует этот класс CardView для Android, заданный андроидом, для отображения макета карты. Если я использую RelativeLayout и устанавливаю его фон в белый, он работает одинаково. Также в случае CardView я должен в любом случае добавить к нему детское прохождение, которое в основном содержит все виды внутри карты. Поэтому я хотел знать, есть ли у них преимущества использования CardView (который фактически увеличивает иерархию представлений), а не обычного макета напрямую.

Ответы

Ответ 1

Есть несколько преимуществ карт перед макетами, в том числе:

  • Закругленные углы, возвышение и т.д. - визуальные улучшения, которые выходят "из коробки", просто используя карты
  • Они поддерживают различную длину контента. Фактически макеты также поддерживают это, но в контексте представлений списка/сетки они должны иметь одинаковый размер, тогда как карточки могут различаться по длине (например, когда вы показываете комментарии или описания)
  • Карты на одном и том же уровне иерархии могут иметь различные типы содержимого/представлений, в отличие от макетов (элементов списка/сетки), которые должны иметь похожие макеты при отображении коллекции.

Все эти и другие функции можно найти в руководстве по дизайну карт.

Короче:

  • Я бы использовал карты, когда хочу отобразить коллекцию предметов, которые могут иметь разную длину/высоту в зависимости от их содержимого (например, рисунки с описаниями и комментариями) или большое количество дополнительных действий.
  • Я бы использовал Относительные/Линейные макеты, когда я хочу отобразить простую коллекцию элементов, все/большинство из которых имеют одинаковый макет и ограниченный объем (максимум 1,2 строки) текста, значок и действие и т.д. элементы, которые одинаковы для всех предметов

Ответ 2

CardView - это способ стиля Google RecyclerView. Вы всегда можете использовать RelativeLayout или любой другой метод.

В соответствии с рекомендациями по разработке Google определение CardView -

Карты - это удобный способ отображения контента, состоящего из различные элементы. Theyre также хорошо подходит для демонстрации элементов размер или поддерживаемые действия варьируются, например, фотографии с титрами переменная длина.

Используя CardView, вы получаете внешний вид Google по умолчанию в своем приложении. Вы можете настроить вид карты в соответствии с вашими потребностями. Вот почему вам нужно иметь дочерние макеты внутри CardView. Plus Material Design - это все, высота, цвета и анимация. CardView может иметь все это относительно легко.

Было бы неплохо, если вы перейдете через направляющие линии дизайна Google в CardView.