CardView
CardView继承FrameLayout类,通过它可以显示信息在卡片内部,并且在不同的平台上有统一的样式。CardView组件可以有阴影和圆角。
创建有阴影的Card,使用card_view:cardElevation属性。CardView 使用真实的高度和动态阴影在Android5.0(API21)和更高版本,较早的版本则使用传统的阴影。
使用这些属性去定制CardView的外观:
Ø 使用card_view:cardCornerRadius属性设置圆角的半径,单位dimen(dp px sp),可以通过xml指定,也可以通过代码中的setRadius指定;
Ø 使用card_view:cardBackgroundColor属性设置卡片的背景颜色, 只能通过xml的cardBackgroundColor进行指定;。
Ø 在API21(Android L)等级以上拥有属性elevation,意为CardView的Z轴阴影,只有L平台有效。只能通过xml中的elevation属性指定;
CardView是一种简单的想法,它基于已有的android版本做了一些细微的改变。在android L中支持这种实时阴影的效果的使用,而在之前的android版本不支持这种功能,在5.0以下的版本中有编程实现阴影想过的备选方案,或预先对图片资源进行处理得到这样的效果。
注:实验试图通过指定 card_view:cardElevation 属性来显示出阴影的效果,但一直不能看出效果,查阅大量网页也没有这方面的说明,官方文档上也没这方面的demo,是不是模拟器上显示不出这个效果。
RecyclerView:更高级更灵活的ListView
RecylerView组件是一个更加高效灵活的ListView。这个组件是一个显示大数据集的容器,可以保持显示一定数量的视图来高效的滚动。当数据集的元素在运行时根据用户的操作或者网络事件改变的情况下,使用RecyclerView组件来显示数据集。
RecyclerView简化了大量数据集合的显示和处理,提供:
Ø 一个负责放置item的布局管理器layout manager。
layout manager不仅负责将item放入RecyclerView 中,还负责决定何时重用那些已经不在视野范围内的item,这点和ListView类似,不过RecyclerView 将这个功能从ListView分离出来交给了layout manager。
Ø item的默认动画 ,也可以自定义layoutmanager和动画。如果要自定义item的动画 需要一个继承 RecyclerView.ItemAnimator的类,然后使用RecyclerView.setItemAnimator来设置动画。
附上Demo地址