版权声明: 本账号发布文章均来自公众号,承香墨影(cxmyDev),版权归承香墨影所有. 每周会统一更新到这里,如果喜欢,可关注公众号获取最新文章. 未经允许,不得转载. 一.前言 DiffUtils 是 Support-v7:24:2.0 中,更新的工具类.因为已经更新了一段时间了,也不好说是最新更新的. 它主要是为了配合 RecyclerView 使用,通过比对新.旧两个数据集的差异,生成旧数据到新数据的最小变动,然后对有变动的数据项,进行局部刷新. 接下来就 DiffUtil 的使用细节,…
作者:Antonio Leiva 时间:Sep 12, 2016 原文链接:http://antonioleiva.com/recyclerview-diffutil-kotlin/ 如你所知,在[支持库24(the Support Library 24)]中包括一个新的.适用.方便的类:DiffUtil,这使你摆脱对单元改变和更新它们的无聊和易出错. 如果你还不了解它,可以阅读Nicola Despotoski的这篇好文章了解它.这篇文章解释怎样容易处理它. 实际上,Java语言引入许多模板,…
一 概述 DiffUtil是support-v7:24.2.0中的新工具类,它用来比较两个数据集,寻找出旧数据集->新数据集的最小变化量. 说到数据集,相信大家知道它是和谁相关的了,就是我的最爱,RecyclerView. 就我使用的这几天来看,它最大的用处就是在RecyclerView刷新时,不再无脑mAdapter.notifyDataSetChanged(). 以前无脑mAdapter.notifyDataSetChanged()有两个缺点: 不会触发RecyclerView的动画(删除.…
1.局部刷新 (1)避免整个列表的数据更新,只更新受影响的布局.例如,加载更多时,不使用notifyDataSetChanged(),而是使用notifyItemRangeInserted(rangeStart, rangeEnd) 补充:recyclerView.adapter的刷新: 刷新全部可见的item,notifyDataSetChanged() 刷新指定item,notifyItemChanged(int)   position数据发生了改变,那调用这个方法,就会回调对应positi…
1.MultiType简单介绍 1.1.MultiType用于比较复杂的页面. 如下图,今日头条用到了MultiType处理各种复杂的页面.    这种还是比较简单的类型.因为一个页面也就这种类型. 下面看看这个页面. 这个就比较复杂了,所以这时候MultiType的作用就体现出来了. 一个页面用一个单独的RecyclerView就可以实现. 再比如微博列表页面:    有纯文本的.代转发原文的,带图片的.带视频的.带文章的等等,甚至穿插一条可以横向滑动的好友推荐条目. 不同的item类型众多,…
[Android]详解7.0带来的新工具类:DiffUtil 标签: diffutil 2017-04-17 18:21 226人阅读 评论(0) 收藏 举报  分类: Android学习笔记(94)    目录(?)[+]   本文出自: [张旭童的博客] 博客地址:http://blog.csdn.net/zxt0601/article/details/52562770 一 概述 DiffUtil是support-v7:24.2.0中的新工具类,它用来比较两个数据集,寻找出旧数据集—>新数据…
场景: 近期做的TODO APP需要在主页添加一个功能,就是可以左滑删除,右滑完成.看了一下当前其他人做的例如仿探探式的效果,核心功能基本一样,但是和我预想的还是有少量区别,于是干脆自己重头学一遍如何自定义layout并且实现我所期望的功能.顺便写个傻瓜式教程,总结一下前人的经验. 需要: Android Studio, RecyclerView 方法: 1. ItemTouchHelper 首先来看一下这个类的官方定义: This is a utility class to add swipe…
UI测试在Android平台上一直都是一个令人头痛的事情, 由于大家平时用的很少, 加之很多文档的缺失, 如果很多东西从头摸索,势必踩坑无数. 自Android24正式淘汰掉了InstrumentationTestCase(位于android.test包), 推出Espresso(位于android.support.test包), Google一直致力于降低UI测试的门槛. 了解测试金字塔的同学可能知道,UI测试属于功能测试(Functional Test), 或者按照其他的划分也属于集成测试(…
转载:大话AOP与Android的爱恨情仇 1. AOP与OOP的区别 平时我接触多的就是OOP(Object Oriented Programming面向对象).AOP(Aspect Oriented Programming面向切面)这两种编程方式,我用自己的语言来解释一下这两者的区别: OOP: 专业术语: OOP(面向对象编程)针对业务处理过程的实体及其属性和行为进行抽象封装,以获得更加清晰高效的逻辑单元划分. 面向对象侧重静态,名词,状态,组织,数据,载体是空间: 大白话: OOP面向对…
原文地址:https://developer.android.com/topic/libraries/support-library/refactor https://blog.csdn.net/chen_xi_hao/article/details/81741486 AndroidX重构 未与Android操作系统捆绑在一起的API包将被重构到新的androidx命名空间中.只有包名和Maven工件名受到影响; 原来的类名,方法名和字段名不会更改.有关AndroidX重构的更多信息,请参阅博客…