Преимущество и недостаток CardView

Каковы преимущества и недостатки CardView, кроме тени или высоты, в чем преимущество производительности и внешнего вида? То, что делается с помощью CardView, также может быть выполнено с использованием комбинации других макетов.

Ответ 1

Преимущество Cardview, безусловно, является его реализацией по умолчанию тени и закругленными углами, простыми словами Cardview является просто FrameLayout с теневыми и закругленными углами. Вы можете сделать почти то же самое с Cardview, которое вы можете сделать с помощью Framelayout (как Cardview extends Framelayout). Cardview для API > 21 использует api высоты для установки теней, тогда как для ниже API 21 он добавляет дополнение с серым фоном для создания фальшивых теней (как и в случае с пользовательской реализацией, о которой вы говорили).

Cardview предназначен для хранения одного дочернего представления внутри себя и будет очень сложно управлять несколькими дочерними представлениями без наложения друг на друга, поскольку нет поддержки свойства, такого как layout_below, layout_torightof и т.д. для преодоления этого подхода разработчики должны были добавить еще один Relativelayout в Cardview для управления дочерними представлениями, теперь это приведет к увеличению потребления ресурсов из-за вложенных макетов.

Для обработки сложных макетов рекомендуется использовать пользовательские представления и просто использовать одно дочернее представление с помощью Cardview.

Чтобы просто наложить верхние части закругленных краев и теней: Если вы рассматриваете Framelayout как торт, то высота подобна обледенению, а закругленные края похожи на вишню. Его эстетика с обледенением и верхним слоем, но вам нужно пролить дополнительные баксы для обледенения и вишни.