背景 RecyclerView.Adapter#notifyDataSetChanged() 会每次刷新整个布局: 每次手动调用 RecyclerView.Adapter#notifyItemXx 系列方法很麻烦: 需要在新增的项目中跟旧的列表项重复时,只更新内容,而不是插入重复项. DiffUtil DiffUtil 就是为了简化 RecyclerVeiw 更新数据操作而生.其关键类和方法如下: 类 方法 描述 DiffUtil public static DiffResult calcula…
前三篇文章 android v7兼容包RecyclerView的使用(三)--布局管理器的使用 android v7兼容包RecyclerView的使用(二) android v7兼容包RecyclerView的使用(一) 介绍了RecyclerView的使用以及常见的相关类和布局管理器的灵活之处.写了这么多篇,还没涉及到用户交互,那么怎么处理点击事件呢. 在RecyclerView中你会惊奇的发现,该类中并没有OnItemClickListener监听器监听我们的单击事件,也没有OnItemL…
1.在app/build.gradle中添加RecyclerView依赖 implementation 'com.android.support:recyclerview-v7:28.0.0' 注意依赖版本号 2.布局文件activity_main.xml引入RecycleView <android.support.v7.widget.RecyclerView android:id="@+id/recycler_view" android:layout_width="m…
实现思维顺序: 1.首先我们需要准备2张.9的png图片(一张图片为左边聊天泡泡,一个图片为右边的聊天泡泡),可以使用draw9patch.bat工具制作,任何图片导入到drawable中. 2.需要写一个聊天室布局xml,布局由android.support.v7.widget.RecyclerView布局构成聊天信息列表布局,一个文本输入框作为信息输入,一个发送Button作为发送键. 3.需要写一个消息的子布局,用于显示RecyclerView布局中里的消息. 4.写一个保存数据的数据类,…
前面一个说了怎么把这个包引用进来,这一节说怎么做一个简单的例子出来,我也是照着别人的例子写的,然后慢慢改就行了,做好的效果如下图 1.在我们的activity_main中把recyclerview填加进来. <android.support.v7.widget.RecyclerView android:id="@+id/recy_list" android:dividerHeight="1dp" android:layout_width="match…
近期学习RecyclerView,使用eclipse引用RecyclerView.编写完demo后编译没有问题,一执行就挂掉,错误例如以下: 07-22 23:05:34.553: D/AndroidRuntime(2968): Shutting down VM 07-22 23:05:34.560: E/AndroidRuntime(2968): FATAL EXCEPTION: main 07-22 23:05:34.560: E/AndroidRuntime(2968): Process:…
Android.support.v7.widget.RecyclerView$ViewHolder.mItemViewType' on a null..空指针问题,费劲心思才找到报空指针的原因: 代码是这样的,有多种布局类型 @Override public int getItemViewType(int position) { BmobIMMessage message = msgs.get(position); if(message.getMsgType().equals(BmobIMMes…
传智·没羽箭(传智播客北京校区Java学院高级讲师) 个人简单介绍:APKBUS专家之中的一个,黑马技术沙龙会长,在移动领域有多年的实际开发和研究经验.精通HTML5.Oracle.J2EE .Java Web编程.对Android应用开发与平台开发有较深入研究.从基础到高级的课程中,授课风格深受学员的喜爱. Android L版本号中新增了RecyclerView,用于显示复杂视图的新增Widget. 一.RecyclerView 替代ListView的RecyclerView使ViewHol…
RecyclerView是Android 5.0新特性--Material Design中的一个控件,它将ListView.GridView整合到一起,可以使用极少的代码在ListView.GridView和瀑布流等布局方式之间转换.RecyclerView整体使用的是插件式的方式,解耦度相比提高了不少,非常灵活. RecyclerView之所以叫RecyclerView,是因为它的特性:它不关心Item是否显示在正确的位置上:不关心Item间如何分隔:不关心增加与删除的动画效果,只关心如何回收…
解决卡顿的方法最简单的就是设置RecyclerView的android:nestedScrollingEnabled="false",放弃自己的滑动,交给外部的NestedScrollView处理,就没有出现卡顿的现象了 至于RecyclerView的上拉刷新,可以监听NestedScrollView的滑动监听,具体代码如下: mNestedScrollView.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeL…