打造RecyclerView的n级列表

2018-08-21
阅读 3 分钟
2.7k
先上效果图: 1.该多级列表的优势: 支持无限级列表展开 基于一个recyclerView实现 可以自定义每一级item的样式,定制化更强 2.设计的思路 数据结构List<ItemBean>,ItemBean类中有变量List<ItemBean>,构造整体RecyclerView的数据源 因为RecyclerView.Adapter本来就支持多个type的item布局,不清楚的可以看下...

ASwipeLayout一个强大的侧滑菜单控件

2018-04-20
阅读 3 分钟
1.6k
前言 该控件的优点: 1.无论是在RecyclerView,ListView,还是LinearLayout等,只要是ViewGroup用该控件都能实现侧滑。 2.控件的手势滑动冲突已解决,不会出现嵌套到ScrollView等控件出现滑动不流畅的情况 3.控件使用简单,只需要在xml外套一层该控件就好了,秒接入 4.点击事件很方便,原来什么写法就什么写法 APK下载地...

requestDisallowInterceptTouchEvent调用时机分析

2018-04-18
阅读 4 分钟
3.9k
写这边文章的初衷是因为经常有人看到说,父viewGroup的onInterceptTouchEvent返回true,子view调用requestDisallowInterceptTouchEvent(true)为什么还能实现子view可以捕获点击事件(其实这个问题一开始是错了),另外有人问用requestDisallowInterceptTouchEvent(true)到底应该在什么时候调用,是在子view的dispatchTou...

Android双列表联动和固定头部ScrollView效果实现

2018-03-22
阅读 5 分钟
5.8k
之前在写一个stickScrollView的时候对不少人有一定的启示作用,这次针对stickScrollView再实现双列表的联动效果,希望对后续的开发者要实现同样的效果能有一定的启示,在实现的思路上比较简单,但是期间碰到了性能的问题,也会针对我优化的过程中提出自己优化的思路,让后面有遇到类似的问题的伙伴少走点弯路。

图解Picasso源码

2018-03-05
阅读 12 分钟
1.6k
支持loadFile,Uri,path等,在这里会其实最终都是调用load(uri)的方法,生成RequestCreator,接下来的placeHolder,errImage,设置图片等,通过链式调用实现。

Android拥有粘性头部的ScrollView

2018-01-22
阅读 7 分钟
4.4k
前言,一天在点外卖的时候,注意到饿了么列表页的滑动效果不错,但是觉得其中的手势滑动还是挺复杂的,正好又碰到了在熟悉Touch事件的理解当中,所以就抽空对着饿了么的列表页面尝试写写这个效果

一个简单的滚动数字的效果实现

2018-01-03
阅读 2 分钟
3.2k
1.效果图 2.定制的属性 textColor 字体颜色 textSize 字体大小 duration 文字显示出来的时间 3.使用说明 implementation 'wellijohn.org.tvanim:animtv:1.0.0' {代码...} 使用的时候,直接在animTv.setText(222.09);就可以了,在这里需要注意的是,这里的数值只支持整型和小数显示,小数只支持到小数点后两个位,如果有...

Parcelable最强解析

2017-12-21
阅读 8 分钟
5.9k
这两天有个同事在使用泛型的过程中,T extends BaseBean,对BaseBean类实现了parceable接口,当一个Activity中跳转到另一个Activity的时候,intent.putExtra("key",childBean),用到ChildBean对象,该类直接继承了BaseBean,他觉得在另外一个Acitivty拿不到ChildBean中的数据信息,甚至当他在用ChildBean=getIntent().get...

Android简易柱状图和曲线图表实现

2017-12-19
阅读 9 分钟
8.7k
之前有写过一个图表lib,但是开发的速度,大多很难跟上产品需求变化的脚步,所以修改了下原先的图表库,支持图表下面能整合table显示对应的类目,用曲线替换了折线,支持多曲线的显示,增加了显示的动画,,增加了一些可定制的属性,支持水平柱状图和叠加柱状图,以及多曲线图和饼状图的显示

Android的延迟实现的几种解决方案以及原理分析

2017-12-07
阅读 9 分钟
6.6k
写这篇文章的目的,是看到群里有人在实现延迟的时候,用如下的第四种方法,个人感觉有点不妥,为了防止更多的人有这种想法,所以自己抽空深入分析,就分析的结果,写下此文,希望对部分人有启示作用。

Android ScrollViewWithStickHeader

2017-11-17
阅读 4 分钟
2.5k
前言,一天在点外卖的时候,注意到饿了么列表页的滑动效果不错,但是觉得其中的手势滑动还是挺复杂的,正好又碰到了在熟悉Touch事件的理解当中,所以就抽空对着饿了么的列表页面尝试写写这个效果

AS升级3.0,gradle plugin 升级到3.0.0遇到的问题

2017-10-27
阅读 2 分钟
21.8k
答:这个是因为Tinker中用到了apkVariantData属性,我们可以将tiner的gradle去除掉。上面是发现tinker有问题,另外发现GrowingIO也有这个问题,如果用的是gradle plugin3.0.0的话也需要去掉,如果还有童鞋有补充的,欢迎留言。

Launcher启动应用程序流程分析(基于25的Android源码)

2017-10-26
阅读 34 分钟
3.5k
当我们在LaucherActivity点击了界面上的图标,是会执行 Activity.startActivity方法来启动一个新的应用程序,那么它执行了什么流程了?答:慎用singleTask的原因:看下这段方法上面的注释

android:focusableInTouchMode为什么能解决ScrollView自动滚动的原理分析

2017-10-11
阅读 8 分钟
11.5k
引言,有一天我在调试一个界面,xml布局里面包含Scroll View,里面嵌套了recyclerView的时候,界面一进去,就自动滚动到了recyclerView的那部分,百思不得其解,上网查了好多资料,大部分只是提到了解决的办法,但是对于为什么会这样,都没有一个很好的解释,本着对技术的负责的态度,花费了一点时间将前后理顺了下

减小Android打包后的apk大小(webpPlugin-太大apk的福音)

2017-09-21
阅读 2 分钟
4.9k
首先需要增加webp的环境配置:通过[链接]下载你对应的电脑的webp的压缩包,解压,将其添加到path路径下,比如我的电脑是windows的64位系统,配置的path路径为:D:\libwebp-0.6.0-windows-x64\libwebp-0.6.0-windows-x64\bin。配置好了,你可以打开terminal,输入cwebp,看下能否找到这个命令,如果能找到就证明环境配置...

Android轻量的线性和百分比图表实现

2017-09-20
阅读 10 分钟
4.1k
目前github上有多个关于图表的框架,比如MPAndroidChart很好,但是很大,没必要因为一个小的图标让工程项目扩大很多,另外有些轻量级的框架,但是个人感觉都很难满足自己的需求,再者就算很好的框架,那也是别人的,只有自己动手写起来,了解前前后后的坑,自己才能成长,而且在写的过程,我们能发现更多的细节,比如绘...

jfrog上传到maven私服的心路历程(组件化必经之路)

2017-09-14
阅读 3 分钟
7.2k
1.[链接],我的是windows的环境,就下载了zip包,你们可以根据自己的电脑系统下载对应的版本,下载完成,打开artfactory.bat,这样就启动了jfrog的服务端软件了,如下图所示:

由Volley的GsonRequest引发的思考

2017-08-24
阅读 3 分钟
3k
1.为什么我们在发起请求的时候,只需要往队列中插入一个request就可以了?答:因为我们在创建requestQueue的时候,会调用Volley.newRequestQueue(Context context, HttpStack stack)方法:

webview加载本地资源的各种尝试

2017-08-21
阅读 3 分钟
7k
1.webview 打开sd卡上的静态html文件 ,js文件既然放在assets文件夹下能找到,那能通过放在sd卡,能加载吗?答:事实证明,是没有用的。

由Message,Handler,MessageQueue和Looper引发的思考?

2017-08-17
阅读 4 分钟
4.9k
1.首先看一段App应用程序启动的时候的源码流程分析图(网上看到的):从上图我们可以看到:当我们点击桌面的应用程序的图标的时候,首先会通过Binder的IPC通信机制,启动ActivityManagerService的startActivity方法,如果发现进程没有启动的话,需要通过zygote(受精卵)孵化出一个新的进程,在新的进程中执行ActivityTh...

jenkins的服务器搭建,持续构建APK,远离fir.im或者bugly

2017-07-19
阅读 2 分钟
2.5k
1.在jenkins官网上[链接]下载对应电脑版本的jenkins安装包。2.在jenkins的安装目录下面,打开terminal,命运行运行 java -jar jenkins.war,打开浏览器,输入类似[链接]。3.进入到jenkins主页,安装对应的插件。4.进入到新建项目的界面,如下所示 :填写项目的名称,这个也就是你到时候在你的jenkins的安装目录的workspa...

Android下的webview调试

2017-04-29
阅读 2 分钟
8.7k
写本篇文章的原因:由于现在的移动端项目集成h5越来越多,但是在排查问题的时候都是前端开发在浏览器中打开h5的地址,然后在调试h5页面的问题,这种调试能发现不少问题,但是效率很低,而且不是在嵌套在手机上显示,在手机端的适配问题很难发现,还有如果是涉及到要和native交互的数据这样也没办法测了。后面我在网上看...

Android屏幕适配(基于实战考虑“Android图片应该用多大,放在什么密度下面,能否用一套图适配”的问题)

2017-04-13
阅读 3 分钟
9.7k
1.Android系统的图片寻找机制对放在xhdpi,xxhdpi等不同密度的图片会根据手机的密度寻找最合适的文件夹下的图片,然后进行根据密度的比率进行放大,缩小处理。2.意味着一张背景图如果是7201280的大小的话,放在上述分辨率的手机上都是可以无变形缩放的。目前我们的设计师大多情况都是按照ios的手机来设计界面的,主流是...

RecyclerView遇到的问题

2017-04-09
阅读 3 分钟
5k
我们在滑动的时候,其他行的checkbox会莫名地调用setOnCheckedChangeListener,这样我们在滑动的时候,会发现其他行的checkbox会很奇怪勾上,然后滑出界面,又消失了,这个时候,我们需要在RecyclerView.Adapter的onBindViewHolder方法中zholder.cb.setOnCheckedChangeListener(null);将checkbox的监听取消掉,这样就能...

Android gradle plugin编写以及上传插件门户网心路历程

2017-04-09
阅读 2 分钟
3.7k
1.首先在新建一个Android library的module,然后将其中的文件都给删除掉,只是保留 main文件和build.gradle文件,build.gradle文件里面的内容都清空掉2.在build.gradle文件中添加如下代码: