底部动作条 底部动作条(Bottom Sheets)是一个从屏幕底部边缘向上滑出的一个面板,使用这种方式向用户呈现一组功能。底部动作条呈现了简单、清晰、无需额外解释的一组操作。...使用环境 底部动作条(Bottom Sheets)特别适合有三个或者三个以上的操作需要提供给用户选择、并且不需要对操作有额外解释的情景。...如果只有两个或者更少的操作,或者需要详加描述的,可以考虑使用菜单(Menu)或者对话框替代。 底部动作条(Bottom Sheets)可以是列表样式的也可以是宫格样式的。...宫格布局可以增加视觉的清晰度。 你可以使用底部动作条(Bottom Sheets)展示和其 app 相关的操作,比如做为进入其他 app 的入口(通过 app 的 icon 进入)。...添加依赖: compile 'com.android.support:design:24.2.0' BottomSheet使用例子: <?
本文目录 RecyclerView概述 RecyclerView使用-基础篇 第一步:添加RecyclerView 第二步:添加布局文件 第三步:添加逻辑代码 运行效果 RecyclerView使用-进阶篇...布局管理器 线性布局管理器 网格布局管理器 ItemDecoration Item 动画 Item 点击 RecyclerView使用-高级篇(上拉刷新下拉加载更多) 第一步:添加依赖 第二步:布局文件...第三步:逻辑代码 完整代码 RecyclerView概述 RecyclerView是官方在5.0之后新添加的控件,推出用来替代传统的ListView和GridView列表控件。...RecyclerView使用-基础篇 第一步:添加RecyclerView **方法1:**点开任意一个布局文件,找到左边的RecyclerView控件,点击旁边的按钮即可添加RecyclerView。...Item的点击 效果如下: RecyclerView使用-高级篇(上拉刷新下拉加载更多) 通常RecyclerView使用的时候需要配合上拉刷新下拉加载更多的功能 我们通过开源控件SmartRefreshLayout
本文是介绍 RecyclerView 入门 系列文章 的第二篇。如果您已经对创建 RecyclerView 有了一定的认识,请继续阅读本文。如果尚未熟悉,建议您首先阅读本系列中的 第一篇文章。...RecyclerView 可以很高效地显示列表数据。对于静态的列表数据,默认的 adapter 足矣。然而,在多数情况下,RecyclerView 的数据是动态变化的。...而 ListAdapter 可以处理元素的添加和删除而无需重绘视图,甚至可以为变化添加动画效果。 使用 ListAdapter 的另一个好处是: 当添加或删除元素的时候,还可以添加动画。...仅需几步简单操作就可以在您的 RecyclerView 中使用 ListAdapter。现在您的应用可以通过使用 ListAdapter 来更新那些发生变化的元素以获得更好的性能和用户体验了。...下一步 关于 ListAdapter 的 完整示例代码 都在这里。 感谢阅读 RecyclerView 系列 的第二篇文章。请继续关注未来更多关于 RecyclerView 的内容。
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(
RecyclerView使用记录 随着公司自用app客户端功能&需求越来越复杂,某些页面的布局也越来越复杂。在前同事的建议下,使用RecyclerView来实现。...方案 请求服务端登录接口,返回用户信息、角色信息、权限等 APP端根据权限组装数据传到Adapter 渲染视图 实现 在主页布局适合的布局添加以下布局代码 recyclerview.widget.RecyclerView...(); 我们通过recyclerView.getHeight方法获取到的高度是RecyclerView控件的高度,不是内容高度 2、获取adapter中的item总个数 int size = recyclerView.getAdapter...的实际position RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams(); /...() 参考资料 RecyclerView常用方法总结 分享计划 博客内容将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/ 许可协议 本文采用 署名-非商业性使用
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 过程中遇到的细碎问题和解决方案。...notifyDataSetChanged 是全量的刷新,且无法应用 ItemAnimator,而 notifyItemXXX 之类的方法使用场景有限,不适合整体的数据更新。...* 用返回值来检测当前 Item 的内容是否发生了变化,根据 UI 需求来改变它的返回值 * 如果用 RecyclerView.Adapter 配合 DiffUtil 使用,需要返回...如果 payloads 不为空,那么当前绑定了旧数据的 ViewHolder 和 Adapter 使用 payload 进行局部更新。...参考: 总结和分析几种判断RecyclerView到达底部的方法 RecyclerView GridLayoutManager实现复杂的列数变化的布局 Android中使用RecyclerView +
image.png StaggeredGridLayoutManager StaggeredGridLayoutManager(瀑布流布局效果),是配合RecyclerView使用的。...match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> recyclerview.widget.RecyclerView...com.exmple.staggeredgridlayoutmanagertest; import androidx.appcompat.app.AppCompatActivity; import androidx.recyclerview.widget.RecyclerView...android.view.View; import android.view.ViewGroup; import android.widget.TextView; import androidx.recyclerview.widget.RecyclerView...(TextView) view.findViewById(R.id.info_text); textView.setText(info); //手动更改高度,不同位置的高度有所不同
文章目录 一、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
文章的功能可以先运行看看效果,扫码下载APK 正文 对于RecyclerView的使用根据实际项目进行说明,一些功能可能是你现在正在做的,对你有帮助也说不定。...下面要做的就是显示一个基本的RecyclerView,因为除了基本使用还有其他的使用方式,我们现在只有一个MainActivity,可以作为其他使用方式的入口,所以我们先修改一下activity_main.xml...五、RecyclerView下拉刷新和上拉加载 在日常使用中,RecyclerView的数据并不是一次性都加载出来的,会有分页,重新加载等操作,而手机上操作就是下拉刷新和上拉加载。...六、RecyclerView多布局使用 在前面的使用中我们在操作写适配器的代码时,都是一个item布局,而有时候数据不同需要显示的布局也不同,就存在多布局的情况,这种情况应该怎么处理呢?...七、RecyclerView多级列表使用 RecyclerView的item有时候又会包裹一个RecyclerView,类似于QQ的分组,分组是一个列表,分组的item可以展开,展开后是一个列表,里面是显示该分组下的人员的
本文是介绍 RecyclerView 入门基础 系列文章 的第四篇。如果您已经对创建 RecyclerView 有了一定的认识,请继续阅读本文。如果尚未熟悉,建议您首先阅读本系列中的 第一篇文章。...而使用真正的 header 元素,您可以实现在用户滑动 RecyclerView 的时候,header 随之移动到屏幕之外。...如果您需要动态更新文本,添加一个变量代表需要更新内容的 TextView。创建 bind() 函数来使用传入的字符串更新 TextView。 RecyclerView 系列 的最后一篇。...实战 | 认识 RecyclerView RecyclerView | 在 RecyclerView 中使用 ListAdapter RecyclerView | 处理 RecyclerView 中的点击事件
和 拖动效果 ; ItemTouchHelper 需要与 RecyclerView 和 ItemTouchHelper.Callback 结合起来使用 ; 根据想要开发的功能 , 重写不同的方法 ;...如果是想要开发拖动效果相关的功能 , 重写 ItemTouchHelper.Callback 的 onMoved 方法 ; public abstract boolean onMove(...抽象类 , 或 实现 ItemTouchHelper.Callback 接口 , 这两个操作 自定义 LayoutManager 布局管理器 , 可以达到最优化的效果 ; 看一下 Android 官方定义的...相关资料 ---- 官方文档 : 使用 RecyclerView 创建动态列表 : https://developer.android.google.cn/guide/topics/ui/layout...博客源码快照 : https://download.csdn.net/download/han1202012/14984775 ( 使用 Android Studio 打开 )
SwipeRefreshLayout是官方提供的下拉刷新控件,在使用过程碰到一些小问题和大家分享下....下面的代码只能监听下拉手势所引发的事件 mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener...,但不会触发上面的监听 //这段代码如果写在onCreate方法中是无效的,因为SwipeRefreshLayout控件还未完全加载,可以使用延迟加载的方法使用下面的代码 mSwipeRefreshLayout.setRefreshing...也不会有下拉刷新的视图 RecyclerView有一点想要分享的是,如果你没有把它和Adapter关联,他会跳过加载,不会实际去初始化这个控件,虽然在布局代码写着 这个和我上面提到SwipeRefreshLayout...提到那个问题放在一起使用,就会产生你下拉不会触发事件的问题.
在新的对话框里选中com.android.support:recyclerview-v7:21.0.0,点击OK。 例如以下图: 这里就顺利的导入了RecyclerView。...2,使用RecyclerView 在布局文件里使用RecyclerView。...(layoutManager); recyclerView.setHasFixedSize(false);//adapter的改变不会改变RecyclerView的大小...(adapter); } 能够明白看到的是,RecyclerView通过(RecyclerView) findViewById(R.id.recyclerView)初始化之后,不仅要像ListView...通过自己定义LinearLayoutManager也能够实现不同的动画效果,和移动效果。 RecyclerView的Adapter和ListView的Adapter也是不同的。
表情列表优化、业务逻辑优化 前言 正文 一、增加线程 ① 增加服务端线程池 ② 增加客户端线程池 二、修改表情出现布局 ① BottomSheet使用 ② CoordinatorLayout使用 ③ Activity...① BottomSheet使用 Android中的布局可以实现这样的功能,因为底部是一样的,所以可以写在一起,目前我们先这么来写,后续可能会有改动。...--底部弹出的内容--> recyclerview.widget.RecyclerView android:id="@+id/rv_emoji"...这里的50dp是指底部显示的高度,底部的列表就用来装载表情。然后我们需要使用CoordinatorLayout(协调布局)来进行配置。...其余的部分我们需要在点击表情的使用再显示出来。
本文是介绍 RecyclerView 入门 系列文章 的第三篇。如果您已经对创建 RecyclerView 有了一定的认识,请继续阅读本文。如果尚未熟悉,建议您首先阅读本系列中的 第一篇文章。...当使用 RecyclerView 显示列表数据的时候,您可能需要响应列表元素的点击事件。该响应处理包括: 打开包含更多数据的页面、显示 toast、删除某个元素等等。...(itemView) 在初始化的代码中,调用 itemView 的 setOnClickListener{}。...现在您的 RecyclerView 可以响应点击事件了。 编程快乐! 下一步 请查阅包含 onClick() 的 完整示例。 感谢您阅读 RecyclerView 系列 文章的第三篇。...请继续关注未来更多关于 RecyclerView 的内容。 如果您想了解更多关于 onClick() 的内容,请参考 官方文档。
在刷新的时候调用对应的刷新 api 即可看到动画 强制实现 ViewHolder RecyclerView 的源码是非常解耦的,且性能非常好 2,RecyclerView 中重要的组件 RecyclerView...5,RecyclerView 的缓存机制 RecyclerView 中缓存的其实是 ViewHolder。...从Cache 中拿到的缓存可直接进行使用,无需重新创建可绑定数据。...看一下案例即可清楚,如下: - 默认的刷新 image.png - 使用 Diff 之后 image.png 通过上面的图可以看到,使用 Diff 之后可以看到明显的动画痕迹。...如果在列表差异很大的时候计算 diff - 使用 Thread 将 DiffResult 发送到主线程 - 使用 RxJava 将 calculateDiff 操作放在后台线程 - 使用 Google
RecyclerView是support-v7包中的新组件,是一个强大的滑动组件,与经典的ListView相比,同样拥有item回收复用的功能,这一点从它的名字Recyclerview即回收view也可以看出...根据官方的介绍RecyclerView是ListView的升级版,既然如此那RecyclerView必然有它的优点,现就RecylerView相对于ListView的优点罗列如下: ① RecyclerView...在了解了RecyclerView的一些控制之后,紧接着来看看它的Adapter的写法,RecyclerView的Adapter与ListView的Adapter还是有点区别的,RecyclerView.Adapter...接下来通过几个小的实例帮助大家更深入的了解RecyclerView的用法。...效果如下: 5.RecyclerView实现瀑布流 例子4:用RecyclerView打造瀑布流效果 其中大部分内容实现和基本的RecyclerView使用是一样的,就不多叙述了,就一个地方不同
在刷新的时候调用对应的刷新 api 即可看到动画 强制实现 ViewHolder RecyclerView 的源码是非常解耦的,且性能非常好 2,RecyclerView 中重要的组件 RecyclerView...5,RecyclerView 的缓存机制 RecyclerView 中缓存的其实是 ViewHolder。...从Cache 中拿到的缓存可直接进行使用,无需重新创建可绑定数据。...看一下案例即可清楚,如下: 默认的刷新 使用 Diff 之后 通过上面的图可以看到,使用 Diff 之后可以看到明显的动画痕迹。...如果在列表差异很大的时候计算 diff 使用 Thread 将 DiffResult 发送到主线程 使用 RxJava 将 calculateDiff 操作放在后台线程 使用 Google 提供的 AsyncListDiffer
领取专属 10元无门槛券
手把手带您无忧上云