CardView的优缺点
Posted
技术标签:
【中文标题】CardView的优缺点【英文标题】:Advantage and disadvantage of CardView 【发布时间】:2015-05-01 21:58:25 【问题描述】:CardView
的优缺点是什么,除了阴影或高程,在性能和外观上有什么好处?使用CardView
完成的操作也可以使用其他布局的组合完成。
【问题讨论】:
CardView
和 ListView
除了阴影和圆角之外没有区别。您可以在列表视图中做任何可以在卡片视图中完成的事情
【参考方案1】:
Cardview
的优势绝对是它默认实现了阴影和圆角,简单来说Cardview
就是一个带阴影和圆角的FrameLayout。你可以用Cardview
做几乎相同的事情,你可以用Framelayout
做同样的事情(如Cardview
扩展FrameLayout
)。 API>21 的 Cardview
使用海拔 api 来设置阴影,而对于 API 21 以下,它添加了一个灰色背景的填充来创建假阴影(就像您正在谈论的自定义实现一样)。
Cardview
被设计为在其内部保存单个子视图,并且由于不支持 layout_below
、layout_torightof
等属性,因此很难在不相互重叠的情况下管理多个子视图。为了克服这个问题,开发人员采取的方法是在Cardview
中添加另一个Relativelayout
来管理子视图,现在这会由于嵌套布局而导致更多的资源消耗。
要处理复杂的布局,建议使用自定义视图并仅使用单个子视图使用Cardview
。
简单地把圆角边缘和阴影的开销: 如果您将 Framelayout 视为蛋糕,那么高程就像糖霜,而圆形边缘就像樱桃浇头。糖衣和浇头的美感,但你必须为糖衣和樱桃花额外的钱。
【讨论】:
所以,你的意思是CardView
只有在用于Api>21时才有用。对于 ApiFrameLayout 相同。
@MohammedAli 不,对于 API
@Psypher 请也回答这个问题:***.com/questions/36393540/…
FWIW,我分析了最新的 androidx CardView
,并与使用 FrameLayout
进行了比较。性能配置文件看起来相同。那里必须有一些命中才能渲染阴影,但我找不到它。以上是关于CardView的优缺点的主要内容,如果未能解决你的问题,请参考以下文章