卡片式布局也是MaterialsDesign中提出的一个新的概念,它可以让页面中的元素看起来就像在卡片中一样,并且还能拥有圆角和投影,下面我们就开始具体学习一下。...正文 ---- CardView 首先这里准备用CardView来填充主题内容, CardView是用于实现卡片式布局效果的重要控件,由appcompat-v7库提供。...然后我们在CardView布局中放置了一个TextView,这个TextView就会显示在一张卡片中了。...为充分利用屏幕的空间,我们可以使用RecyclerView来填充MatenalTest项目的主界面部分。 这里参考一下郭神的demo——实现水果列表,首先需要准备许多张水果图片: ?...> 这里使用了CardView来作为子项的最外层布局,从而使得RecyclerView中的每个元素都是在卡片当中的。
去年很早之前,我就讲解过RecyclerView的使用,今天我们就在讲解CardView的时候,顺便再把RecyclerView同时讲解一下。...RecyclerView、CardView为用于显示复杂视图的新增Widget。接下来看看如何使用吧。...CardView CardView介绍 CardView是Android5.0之后为新增的控件,CardView是一个卡片布局,布局可以包含圆角和阴影,本质上CardView是一个FrameLayout...CardView属性 CardView中常用的属性有: cardElevation:设置阴影的大小 cardBackgroundColor:卡片布局的背景颜色 cardCornerRadius:卡片布局的圆角的大小...conentPadding:卡片布局和内容之间的距离 效果图和实例代码 效果图如下: ?
app:cardBackgroundColor:设置卡片的背景色。 app:cardCornerRadius:设置卡片的圆角大小。 app:contentPadding:设置内容的padding。...这里有一点需要值得注意,之前学习到的控件属性都是android:开头的,而这里所列的属性是app:开头的,如果继续使用默认的会提示找不见对应属性,需要我们定义一个app命名空间,在布局文件中需要加入xmlns...三、CardView示例2 CardView被包装为一种布局,并且经常在ListView和RecyclerView的Item布局中,作为一种容器使用。...接下来简单定义一个CardView的item项,并在Java代码中修改CardView的属性,关于结合ListView和RecyclerView的部分比较简单,这里不做过多介绍。...); mCardView = (CardView) findViewById(R.id.cardview);// 设置卡片圆角的半径大小 mCardView.setRadius
CardView 扩展 FrameLayout 类别并让您能够显示卡片内的信息,这些信息在整个平台中拥有一致的呈现方式。CardView 小组件可拥有阴影和圆角。...如果要在代码中设置圆角半径,请使用 CardView.setRadius 方法。 如果要设置卡片的背景颜色,请使用 card_view:cardBackgroundColor 属性。...card_view:cardCornerRadius 卡片的圆角大小 card_view:contentPadding 卡片内容于边距的间隔 card_view:contentPaddingBottom...card_view:cardPreventConrerOverlap 在V20和之前的版本中添加内边距,这个属性为了防止内容和边角的重叠 一般来说和RecyclerView搭配起来使用效果更加~ --...-- 如何使用 添加依赖项 RecyclerView 与 CardView 小组件为 v7 支持内容库的一部分 将这些 Gradle 依赖项添加至您的应用模块 dependencies { ..
和RecyclerView结合实现下拉刷新,以及RecyclerView的数据适配器RecyclerView.Adapter的用法,还有RecyclerView中item的点击事件的实现方法; 卡片式CardView...本例中,TabLayout在界面滚动时,随着Toolbar的逐渐隐藏,将占据Toolbar的位置, 达到节省屏幕空间,界面动画效果的目的。...-- CardView就是一个卡片样式的FrameLayout。...app:cardPreventCornerOverlap : 在v20和之前的版本中添加内边距, 这个属性是为了防止卡片内容和边角的重叠...app:cardUseCompatPadding : 设置内边距,v21+的版本和之前的版本仍旧具有一样的计算方式 --> CardView xmlns
(5)列表和卡片 RecyclerView和CardView是support-v7包中新添加的组件,使用它们需要引用依赖com.android.support:recyclerview-v7:x.y.z...RecyclerView也具有ListView一样的item复用机制,还可以直接把ViewHolder的实现封装起来,开发者只要是实现ViewHolder就行了,RecyclerView会自动回收复用每一个...也是一种容器内布局,只是它提供了卡片样的形式。...在XML布局文件中使用CardView的时候还需要引入其命名空间xmlns:cardview=http://schemas.android.com/apk/res-auto。...setEnterTransition(new Fade()); getWindow().setExitTransition(new Fade()); 共享元素过渡动画:一个共享元素过渡动画决定两个Activity之间的过渡怎么共享它们的视图
) 是两种不同的方法,它们各自有不同的用途和效果: notifyDataSetChanged() 用途:这个方法用于通知 RecyclerView 整个数据集已经发生变化,需要刷新所有的数据项。...这通常会导致整个 RecyclerView 的重新布局和重新绘制,性能开销较大。 使用场景:当你不知道具体哪些数据项发生了变化,或者数据项的变化非常频繁且不可预测时,可以使用这个方法。...但通常情况下,推荐使用更具体的通知方法来提高性能。 notifyItemRemoved(int position) 用途:这个方法用于通知 RecyclerView 指定位置的数据项已经被移除。...效果:当调用 notifyItemRemoved(int position) 时,RecyclerView 会认为在 position 位置的数据项已经从数据集中移除,因此它会刷新该位置的数据项,并可能将后续的数据项上移来填补空缺...在实际开发中,应该根据数据变化的具体情况选择合适的方法来通知 RecyclerView 更新,以确保应用的性能和用户体验。 END 点赞转发,让精彩不停歇!关注我们,评论区见,一起期待下期的深度好文!
循环视图 RecyclerView Android 5.0 线性布局管理器 LinearLayoutManager Android 5.0 网格布局管理器 GridLayoutManager Android...5.0 瀑布流网格布局管理器 StaggeredGridLayoutManager Android 5.0 cardview-v7 卡片视图 CardView Android 5.0 palette-v7...使用v7与design库的控件,类似于使用自定义控件,不但要在布局文件中引用完整路径的控件名称,还要在根布局声明命名空间(即添加属性xmlns:app="http://schemas.android.com...这部分控件数量最多,实现的界面特效最丰富,而且互相之间存在依赖关系,如design库依赖于appcompat-v7库,部分design控件如NavigationView还依赖于recyclerview-v7...Android5.0和6.0之后补充了这么多新控件,自然有部分老控件变过时了,下面就列举部分新旧控件的替代关系: Toolbar:替代ActionBar RecyclerView:替代ListView和
同时,Google也给出了两个可以向下兼容的控件放到了V7包中,分别是RecyclerView和CardView,这篇博文就说一下怎么使用CardView。 CardView的包在哪?...这个路径下就有cardview相关的东西了,包括已经打包好的aar包。...CardView的Z轴阴影,只有L平台有效。...只能通过xml中的elevation属性指定; 其余(2.0以上)有属性cardBackgroundColor,意为CardView的卡片颜色,只能通过xml的cardBackgroundColor进行指定...; 其余(2.0以上)有属性cardConerRadius,意为CardView卡片的四角圆角矩形程度,单位dimen(dp px sp),可以通过xml指定,也可以通过代码中的setRadius指定
材料设计概述 材料的形态模拟 Google通过模拟自然界纸墨的形态变化、光线与阴影、纸与纸之间的控件层级关系,带来一种真实的空间感 更加真实的动画 Android5.x大量加入了各种新的动画效果,让整个设计风格更加自然和谐...让视图产生阴影 使用RecyclerView和CardView 定制动画 intel x86模拟器 下载和安装intel x86模拟器加速器 之前的ARM模拟器,是以软件的形式模拟,所以很慢~x86可以选这使用宿主机器的...GPU等,和真机的速度相差无几~ 下面更新SDK使用了国内的代理,需要的童鞋可以看下 ?...RecyclerView 详见本人另一篇博客 RecyclerView完全解读 ---- 立体卡片CardView 详情请查看鄙人CradView的使用 ---- 视图和阴影 Material Design...android:layout_height="wrap_content" android:layout_gravity="center" android:text="@string/cardview_contents
可以看到我是用瀑布流的方式来实现图片的展示,效果还不错,但其实实现起来也是很简单的 先写个图片的布局作为 RecyclerView 的 Item CardView...android:layout_centerVertical="true" /> CardView...> 可以看到我在 ImageView 的外面加了一个 CardView,这个一种卡片式布局,能让图片看起来就像一张卡片一样,相当的优雅、美观。...接着编写 Adapter,将数据和界面进行绑定 public class MeiziAdapter extends RecyclerView.Adapter<MeiziAdapter.MeiziViewHolder...mMeiziBeanList.size(); } return 0; } public static class MeiziViewHolder extends RecyclerView.ViewHolder
由于CoordinatorLayout本身已经可以响应滚动事件了, 因此我们在它的内部就需要使用NestedScrollView或RecyclerView这样可以响应滚动事件的布局。...另外,通过 app:layout_behavior属性指定一个布局行为,这和之前 第四弹 在RecyclerView中的用法是一模一样的。...其中, CardView的marginTop加了35dp的边距,这是为下面要编写的东西留出空间。 至此水果标题栏和水果内容详情的界面便编写完了。...这是由于用户想要查看水果的内容详情,此时界面的重点在具体的内容上面,因此标题栏就会自动进行折叠,从而节省屏幕空间。 继续向上拖动,直到标题栏变成完全折叠状态,效果如图: ?...---- 充分利用系统状态栏空间 ?
聊聊RecyclerView缓存机制和详细聊聊RecyclerView缓存机制,前者主要是介绍各个层级缓存的作用以及它们之间的区别,后者主要是从源码的角度讲解缓存是怎么实现的。...当我们穷尽所有方法,把RecyclerView调优方案都用尽了的时候,用好ViewCacheExtension就成了将RecyclerView性能优化到极致的最后一公里。...itemView布局文件代码如下: cardview.widget.CardView xmlns:android="http://schemas.android.com/apk...orientation="horizontal" android:padding="@dimen/small" android:textSize="14sp" /> cardview.widget.CardView...前提是不修改HeavyTextView,仍然休眠100ms 对比RV OnLayout事件,优化后的效果只需要76ms。将近10倍的优化空间。实际效果是,跳转Activity很顺滑很流畅。 4.
例如示例的一个列表展开成为了详情页、FAB 变形为工具栏,或 chip 扩展为了浮动的 卡片。...使用容器变换,实现视图间的动画切换,可帮助增强它们之间的联系,并维持一个用户的 导航上下文。...第一个是单个邮件列表项的卡片,我们将使用 数据绑定,来确保每一个列表项都有唯一的过渡名称。...UI 元素之间的过渡。...RecyclerView 上设置 android:transitionGroup="true" 的需求同样适用于这里,但是我们已经在共享轴配置的步骤中解决了这个问题。
前言 官方文档传送门 RecyclerView是Google推荐用来替代ListView的. 整体使用感觉和ListView差不多, 但是比ListView是要多不少优点的....在分散对齐网格中显示项目 ---- CardView使用 我们将每一个CardView视为RecyclerView的item, 所以就不加布局, 直接上CardView了....就像ListView的item一样. 这段布局代码的android:foreground="@drawable/card_foreground"部分我们在给CardView加点击特效部分继续细说....在给CardView添加点击特效部分结束之后会给出完整的效果图....添加点击特效 不像ListView是有个默认点击特效的, RecyclerView是需要自己来完成的.
使用RecycleView和CardView展示已安装应用的包名和图标 ① 获取安装的应用信息 public class ApkInfos { Context mContext;...e.printStackTrace(); } return Name; } } ② Adapter添加数据 public class AppsAdapter extends RecyclerView.Adapter...{ public CardView cardView; public ImageView imageView; public TextView textView_App_Name...ApplicationPackageName); viewHolder.imageView.setImageDrawable(drawable); //添加点击事件直接打开已安装的应用...= new ApkInfos(this).GetAllInstalledApkInfo(); AppsAdapter adapter=new AppsAdapter(this,appInfos); recyclerView.setAdapter
RecyclerView 有很高的自由度,可以说只有想不到没有做不到,真是越用越喜欢。这次用超简单的方法,让 RecyclerView 带上折叠的效果。 效果是这样的。...我们知道,RecyclerView 可以通过设置 ItemDecoration 来实现列表的间隔效果,有没有想过要是把间隔设为负数会怎么样?...当然,我们要用 Material Design 的控件才有这个属性,这里我用的是 CardView。...= null) { if (view instanceof CardView) { ((CardView) view).setCardElevation(dp2px...= 0) { view.setTranslationY(0); } 复制代码 这样就完成了一个带有简单折叠效果的 RecyclerView 了,妥妥的。
runner:1.1.0 com.android.support:appcompat-v7 androidx.appcompat:appcompat:1.0.0 com.android.support:cardview-v7...androidx.cardview:cardview:1.0.0 com.android.support:design com.google.android.material:material:1.0.0...androidx.recyclerview:recyclerview:1.0.0 com.android.support:support-v4 androidx.legacy:legacy-support-v4...androidx.recyclerview.widget.RecyclerView android.support.v7.widget.GridLayoutManager androidx.recyclerview.widget.GridLayoutManager....widget.CardView androidx.cardview.widget.CardView android.support.v7.graphics.Palette androidx.palette.graphics.Palette
项目中列表肯定是少不了的,那么这就不得不提RecyclerView了,强大之处不用多说,感兴趣的话看一下我之前写的博客,对其使用有个简单的介绍:简单粗暴RecyclerView 那如果想实现侧滑删除和长按拖拽的功能怎么办呢...() { override fun getMovementFlags(recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder...6、CardView 列表结构写好了,里面内容得优化吧,CardView自带圆角和阴影效果,让每个Item看起来就非常的自然,正如其名像卡片一样,也符合了Material Design特点。...作为ViewGroup包裹子View实现圆角和阴影的效果: CardView android:layout_width="wrap_content...列表写好了,接下来就是滑动的交互,CoordinatorLayout:作为根View或者是一个活多个子View特定的容器,用于协调子View之间滑动的交互,可以说CoordinatorLayout是整个
Gallery的常用属性说明如下: spacing : 指定图片之间的间隔大小。 unselectedAlpha : 指定未选定图片的透明度。...Gallery的常用方法说明如下: setSpacing : 设置图片之间的间隔大小。 setUnselectedAlpha : 设置未选定图片的透明度。...CardView的常用属性说明如下(因为引用的是库工程,所以CardView节点的属性要像自定义控件一样对待,即先在根节点定义一个命名空间app指向res-auto,然后再使用app:属性名称来定义属性值...contentPadding : 指定卡片边缘阴影的高程,即阴影的宽度。 CardView的常用方法说明如下: setCardBackgroundColor : 设置卡片的背景颜色。...setCardElevation : 设置卡片边缘阴影的高程,即阴影的宽度。 下面是Gallery与CardView结合使用的效果截图: ?