概述
在使用 RxJava+Retrofit 结合的网络框架时,为了避免打破流式调用 和 过于繁杂的 Subscribe 代码
我们做了很多的尝试,比如 自定义操作符,自定义Transformer,泛型处理,和 自定义 Subscriber等
错误和异常举例
比如,在服务器返回数据中,假设服务器遵循规范,请求体 一般类似下面这种,
1 | { |
在使用 RxJava+Retrofit 结合的网络框架时,为了避免打破流式调用 和 过于繁杂的 Subscribe 代码
我们做了很多的尝试,比如 自定义操作符,自定义Transformer,泛型处理,和 自定义 Subscriber等
比如,在服务器返回数据中,假设服务器遵循规范,请求体 一般类似下面这种,
1 | { |
看到 Android Weekly 最新一期有一篇文章:Tinting drawables,使用 ColorFilter 手动打造了一个 TintBitmapDrawable,之前也看到有些文章使用这种方式来实现 Drawable 着色或者实现类似的功能。但是,这种方案并不完善,本文将介绍一个完美的后向兼容方案。
RecyclerView出来已经很长时间了,关于其的介绍也非常的多.作为ListView的升级版,它更加强大和灵活.
可以轻松的实现各种布局和动画,见其名,知其意.RecyclerView用于在有限窗口中展示大量数据集合的可复用的视图.
这里主要梳理一下Recyclerview的常用方法,示例Demo:BoBoMEe/AndroidDev
在开发过程中,当系统提供的控件不能满足我们的需求的时候,通常都会采用自定义控件来完成,自定义控件的一般流程:
attrs.xml–>onMeasure()–>onLayout(ViewGroup)–>onDraw()–>onTouchEvent()–>onInterceptTouchEvent(ViewGroup);
其中带有ViewGroup的是自定义ViewGroup需要用到的方法.
ContentProvider(内容提供者)是Android中的四大组件之一。主要用于程序间数据的共享(IPC的一种).
它提供了一套完整的机制,允许一个程序访问另一个应用程序,并且保证数据的安全性.
我们知道在Android中常见的数据存储方式有sharedpreferences,文件和数据库等,但是数据的访问方式会因为存储方式的不同而不同.
而且这些数据只能在应用内使用,而ContentProvider允许在程序间实现数据的共享,并且提供好了统一了数据的访问方式.
MVP(Model-View-Presenter)是传统MVC(Model-View-Controller)在Android开发上的一种变种、进化模式。主要用来隔离UI、UI逻辑和业务逻辑、数据,创建松散耦合并可重用的对象。
我们知道View层是容易变化且多种多样的,业务逻辑也是多种多样的,与传统的MVC相比,P充当了C的作用.
Model存储数据,View表示Model的表现,Presenter协调两者之间的通信.
而后在MVP基础上也出现了一些变种,如MVVM,MVPVM等,相比较MVP而言,MVVM使数据绑定变得更加简单.MVPVM在MVVM中加入引入Presenter层
Dagger2是一款使用在Java和Android上的静态的,运行时依赖注入框架.官方地址:http://google.github.io/dagger/
记得当初刚学习Dagger2的时候看了许多博客,但是感觉上手依然困难,所谓光学不练就是这个意思吧
时至今日,用上此框架的同仁越来越多.分析文章也很多,上手相对要简单了许多.
学习Dagger2最先要明白的是其各个注解的含义及工作原理,这样才可以快速的上手和使用.
在这里简要记录一下在使用Dagger2过程中的感受和心得体会.
本文示例代码地址:Dagger2Sample
通常来说,解决activity和fragment通信的问题。我们都是采用如下几种方式,
handler,广播,EvnetBus,接口等。那么有没有一种更好的方式来实现呢,最近项目一只在使用Rx,这里参照了一下Rx的设计来解决如上问题。先来说说常用的几种方式。
应用首页的广告轮播Banner,一般都会使用ViewPager来实现,但是ViewPager 没有轮播效果。
现成有这么几种实现方案:
1.使用Integer.MAX_VALUE ,理论上很难达到边界。
2.装饰adapter方式imbryk/LoopingViewPager@Github。
3.扩展ViewPager方式yanzm/LoopViewPager。