Каковы преимущества и недостатки 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 как торт, то высота подобна обледенению, а закругленные края похожи на вишню. Его эстетика с обледенением и верхним слоем, но вам нужно пролить дополнительные баксы для обледенения и вишни.