app:contentPaddingTop:设置内容的上padding。 app:contentPaddingLeft:设置内容的左padding。...继续使用WidgetSample工程的advancedviewsample模块,首先需要添加支持库,具体操作步骤同之前分享的揭开RecyclerView庐山真面目,这里不再重复分享。...三、CardView示例2 CardView被包装为一种布局,并且经常在ListView和RecyclerView的Item布局中,作为一种容器使用。...接下来简单定义一个CardView的item项,并在Java代码中修改CardView的属性,关于结合ListView和RecyclerView的部分比较简单,这里不做过多介绍。...至此,CardView的学习到此告一段落,是不是发现使用起来也非常简单,更多用法建议自己去摸索。
compile 'com.android.support:recyclerview-v7:21.0.3' } 2、使用 在布局文件中使用RecyclerView 使用ListView或GridView的时候都会用到。...RecyclerView的Adapter强制要求使用ViewHolder,该ViewHolder须继承RecyclerView.ViewHolder。 对应的item布局 的简单使用,来看看效果 ?...效果 我们在使用ListView的时候,一般都会使用分割线,只要在布局中说明就好了。相比ListView,RecyclerView添加分割线就有些复杂了。
官方介绍 RecyclerView是ListView的一个更高级、更灵活的版本。RecyclerView组件是为大量的视图组件提供的一种容器,使得它们可以有效的在其中循环和滚动。...RecyclerView is a more advanced and flexible version of ListView....RecyclerView的使用 最终要达到的效果 如下图所示 image.png 编写相关的布局文件 MainItem布局如下: 的Adapter类 class MainItemAdapter(private val itemList: List) : RecyclerView.AdapterRecyclerView>(R.id.recycler_view) recyclerView.layoutManager = GridLayoutManager(
CardView 在 Android 5.0(API 级别 21)及更高版本中使用真实高度与动态阴影,而在早期的 Android 版本中则返回编程阴影实现。...如需了解详细信息,请参阅保持兼容性 使用以下属性定制 CardView 的外观: 如果要在布局中设置圆角半径,请使用 card_view:cardCornerRadius 属性。...如果要在代码中设置圆角半径,请使用 CardView.setRadius 方法。 如果要设置卡片的背景颜色,请使用 card_view:cardBackgroundColor 属性。...card_view:cardPreventConrerOverlap 在V20和之前的版本中添加内边距,这个属性为了防止内容和边角的重叠 一般来说和RecyclerView搭配起来使用效果更加~ --...-- 如何使用 添加依赖项 RecyclerView 与 CardView 小组件为 v7 支持内容库的一部分 将这些 Gradle 依赖项添加至您的应用模块 dependencies { ..
1.RecyclerView的item宽度设置方法 方法一:重写RecyclerView.ItemDecoration 在getItemOffsets方法中设置传入的值 /** * Item spacing...for custom RecyclerView * add by xiangy */ public class ItemMarginDecoration extends RecyclerView.ItemDecoration...的item布局间距 2.RecyclerView跳转到指定item的方法 a.重写LinearSmoothScroller public class TopSmoothScroller extends...(this); s.setTargetPosition(position); Manager.startSmoothScroll(s); } 3.RecyclerView刷新item的几种方式...0 : Math.min(left, right) * 1f / Math.max(left, right);//算出一个根据位置计算的等比函数 float scaleFactor
去年很早之前,我就讲解过RecyclerView的使用,今天我们就在讲解CardView的时候,顺便再把RecyclerView同时讲解一下。...RecyclerView、CardView为用于显示复杂视图的新增Widget。接下来看看如何使用吧。...所以要使用RecyclerView,要好好考虑以下几点: RecyclerView.Adapter:RecyclerView.Adapter包含了一种新型适配器,其实与以前我们使用的适配器基本类似,只是稍微有所不同...HeaderView + RecyclerView 实现方式 RecyclerView上拉更多 RecyclerView具体使用不讲了,今天我们顺便讲一下如何在RecyclerView加上拉更多的效果吧...CardView CardView介绍 CardView是Android5.0之后为新增的控件,CardView是一个卡片布局,布局可以包含圆角和阴影,本质上CardView是一个FrameLayout
RecylerView 上拉加载更多 上拉加载的多状态 ---- 这篇博客是承接上一篇博客--探索Android架构的DataLayer层(DataManager方式)具体实现,其实是上篇博客的一个使用比较普遍的例子...,当然如果把上一篇博客设计的数据加载回调接口提炼出来也是可以做一篇单独的文章。...先说说我们希望的RecycerView应该有的样子:上拉加载更多,没有更多,加载错误然后点击重试。...接着上篇写的数据加载接口来看,开始加载的时候加入加载的itemView,完成加载后去掉它。通过给RecyclerView添加的滑动事件来判断加载时机。...,我今天写的这个其实是上一篇博客的继续或者例子。
控件在频幕上出现的时间超过1.5s 有效区域出现超过1半 监听View的移入和移出事件 先解决RecyclerView的1.5s这个问题,大家第一个想到的可能都是addOnScrollListener,...其中通过暴露了接口回调的方式让它和RecyclerView可以绑定到一起。...那么也就是当RecyclerView的子控件被添加到RecyclerView上时,就会触发子view的attachToWindow方法。...剩下来的就是View的detch方法是在哪里被触发的呢,这个就是要看recyclerview的另外一个方法了,就是tryGetViewHolderForPositionByDeadline了。...return holder; } 复制代码 当ViewHolder要被回收的时候就会触发RecyclerView的tryGetViewHolderForPositionByDeadline
很多软件都使用了卡片式的布局,看上去非常美观。查了一下,大多是采用CardView这个神奇的组件实现。...翻阅大部分教程,大多数都是采用这行代码来调用cardview包 import android.support.v7.widget.CardView 耗费了很多精力,我还是无法成功安装相应的依赖。...后来发现,由于版本更新,现在的方式已经改变。...layout_height="wrap_content" android:padding="5dp" android:text="更多更好玩的奇技淫巧...= (CardView) findViewById(R.id.cardView); cardView.setRadius(8);//设置图片圆角的半径大小 cardView.setCardElevation
image.png StaggeredGridLayoutManager StaggeredGridLayoutManager(瀑布流布局效果),是配合RecyclerView使用的。...match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> recyclerview.widget.RecyclerView...(TextView) view.findViewById(R.id.info_text); textView.setText(info); //手动更改高度,不同位置的高度有所不同...schemas.android.com/apk/res-auto" android:layout_width="100dp" android:layout_height="100dp"> cardview.widget.CardView...android:layout_height="match_parent" android:gravity="center" /> cardview.widget.CardView
CardView(这里用于作为recycleview的子项,用于显示水果) 1.1 实际上,CardView也是一个FrameLayout,只是额外提供了圆角和阴影等效果,看上去会有立体的感觉...实际上,CardView也是一个FrameLayout,只是额外提供了圆角和阴影等效果,看上去会有立体的感觉。...> 这里使用了CardView来作为子项的最外层布局,从而使得RecyclerView中的每个元素都是在卡片当中的。...另外,为了让界面上的数据多一些,这里使用了一个循环,随机挑选50个水果。 之后是RecyclerView的逻辑,这里使用GridLayoutManager布局方式。...解决方法: 传统情况下,使用偏移是唯一的解决办法, 即让RecyclerView向下偏移一个Toolbar的高度,从而保证不会遮挡到Toolbar。
该控件的实现原理并不复杂,事实上早期便有许多人自己写了类似卡片效果的控件,只不过后来Android顺应民意推出了原生的卡片视图。...使用CardView之前,要把“sdk\extras\android\support\v7\cardview”导入为一个库工程,并引用到自己的工程中。...CardView的常用属性说明如下(因为引用的是库工程,所以CardView节点的属性要像自定义控件一样对待,即先在根节点定义一个命名空间app指向res-auto,然后再使用app:属性名称来定义属性值...contentPadding : 指定卡片边缘阴影的高程,即阴影的宽度。 CardView的常用方法说明如下: setCardBackgroundColor : 设置卡片的背景颜色。...setCardElevation : 设置卡片边缘阴影的高程,即阴影的宽度。 下面是Gallery与CardView结合使用的效果截图: ?
RecyclerView 有很高的自由度,可以说只有想不到没有做不到,真是越用越喜欢。这次用超简单的方法,让 RecyclerView 带上折叠的效果。 效果是这样的。...我们新建一个 ParallaxRecyclerView,让它继承 RecyclerView,并使用 LinearLayoutManager 作为布局管理器。...当然,我们要用 Material Design 的控件才有这个属性,这里我用的是 CardView。...= null) { if (view instanceof CardView) { ((CardView) view).setCardElevation(dp2px...设置高度的,这里让每一项的高度比它的上一项高 5dp。
文章目录 一、RecyclerView 简介 二、RecyclerView 特点 三、RecyclerView 涉及到的类 四、RecyclerView 相关资料 一、RecyclerView 简介 -...避免了 ListView 中自定义 ViewHolder , 给出了相应的 规范 ; 三、RecyclerView 涉及到的类 ---- RecyclerView 使用必须有的关键类 : RecyclerView.ViewHolder...创建 RecyclerView.ViewHolder , 并为其绑定数据 ; LayoutManager 布局管理器主要作用是 负责排列各个元素组件 , 可以使用系统提供的 线性布局管理器 LinearLayoutManager...; 上面的 3 个类 , 是使用 RecyclerView 时 , 必须用到的类 , 没有的话 , RecyclerView 便无法显示 ; 此外还有一些可选的设置类 : ItemDecoration...RecyclerView 相关资料 ---- 官方文档 : 使用 RecyclerView 创建动态列表 : https://developer.android.google.cn/guide/topics
前言 官方文档传送门 RecyclerView是Google推荐用来替代ListView的. 整体使用感觉和ListView差不多, 但是比ListView是要多不少优点的....---- RecyclerView使用 将RecyclerView添加到布局....在分散对齐网格中显示项目 ---- CardView使用 我们将每一个CardView视为RecyclerView的item, 所以就不加布局, 直接上CardView了....在给CardView添加点击特效部分结束之后会给出完整的效果图....选择器 我再补充一点, 想要不同版本对应不同的点击特效, 要在资源文件目录建文件夹. 比如这里的drawable-v21就代表21及以上使用, 21以下使用drawable. ?
CardView 简介 CardView 是 Google 官方发布 MD 风格卡片布局控件,开发者可以很方便的使用它将布局做成卡片效果。...在使用 CardView 之前,多少应该对它有一定的了解,下面将对其实现做简单的介绍。 自定义属性 CardView 继承自 FrameLayout,并在其基础上添加了圆角和阴影等效果。...实际使用中我们发现,即便一个APP内部的多个CardView也能有不同的表现,更不用说整个系统上的所有APP了,那这又是怎么做到的呢?...对象,就做到了一个系统上不同CardView有不同表现。...CardView 使用 添加依赖库 CardView 是随 MD 推出的补充库,并非 SDK 的内容,因此在使用 CardView 时,必须先引入依赖库: implementation '
使用RecycleView和CardView展示已安装应用的包名和图标 ① 获取安装的应用信息 public class ApkInfos { Context mContext;...{ public CardView cardView; public ImageView imageView; public TextView textView_App_Name...ApplicationPackageName); viewHolder.imageView.setImageDrawable(drawable); //添加点击事件直接打开已安装的应用...} @Override public int getItemCount(){ return mStringlist.size(); } } ③ 使用...= new ApkInfos(this).GetAllInstalledApkInfo(); AppsAdapter adapter=new AppsAdapter(this,appInfos); recyclerView.setAdapter
如果不想卸载重装,也想继续使用AndroidX的话,则要在导入外部模块之后,修改模块的build.gradle,把原来support库的路径改为对应的AndroidX库的路径。...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
SwipeRefreshLayout是官方提供的下拉刷新控件,在使用过程碰到一些小问题和大家分享下....下面的代码只能监听下拉手势所引发的事件 mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener...,但不会触发上面的监听 //这段代码如果写在onCreate方法中是无效的,因为SwipeRefreshLayout控件还未完全加载,可以使用延迟加载的方法使用下面的代码 mSwipeRefreshLayout.setRefreshing...也不会有下拉刷新的视图 RecyclerView有一点想要分享的是,如果你没有把它和Adapter关联,他会跳过加载,不会实际去初始化这个控件,虽然在布局代码写着 这个和我上面提到SwipeRefreshLayout...提到那个问题放在一起使用,就会产生你下拉不会触发事件的问题.
聊聊RecyclerView缓存机制和详细聊聊RecyclerView缓存机制,前者主要是介绍各个层级缓存的作用以及它们之间的区别,后者主要是从源码的角度讲解缓存是怎么实现的。...很诡异的是,就算是到2021年的秋天,无论你怎么搜索,还是很难找到正确使用ViewCacheExtension的方法。...itemView布局文件代码如下: cardview.widget.CardView xmlns:android="http://schemas.android.com/apk...orientation="horizontal" android:padding="@dimen/small" android:textSize="14sp" /> cardview.widget.CardView...解决方案:先将itemView add到临时viewGroup上,然后remove掉。 缓存复用不正确。解决方案:反射设置ViewHolder的itemViewType。 缓存不够用。
领取专属 10元无门槛券
手把手带您无忧上云