自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 资源 (1)
  • 收藏
  • 关注

原创 React Native 深拷贝

问题是这样的:Props里需要拷贝一个object 然后处理下使用,Object。assgin是可以实现目的,但是flow总是报错说不能重新assgin解决方法: 深拷贝然后修改拷贝后的对象使用。 import _ from ‘lodash’;const { object } = this.props; const clone = _.cloneDeep(object);然后fl...

2018-04-17 17:53:29 1104

原创 React Native Map遍历问题

code:for (let room of rooms.values()) { console.log(room);}error:TypeError: undefined is not a function (evaluating '_iterator[typeof Symbol === 'function' ? Symbol.iterator : '@@iterator']()

2018-02-02 11:15:19 8606

原创 SectionList 嵌套FlatList实现Grid和Flat列表

直接上代码,遇到问题查解决方法的时候还是先看官方文档把,百度的博客实在是坑啊,特别是那个某博客的有个sectionlist简直了,sectionlist里竟然来个numColumns,明明没有的事也不知道他哪里偷的文档,结果苦逼的研究半天。。。为什么没有效果呢????因为官方文档里就没有这个属性啊。。。泪奔。renderItem = (info) => { return

2018-01-19 11:50:43 3766 1

原创 React Native FlatList强制刷新Changing numColumns on the fly is not supported

红色的喜庆颜色又来了。这个报错很明白,就是不让你刷新,因为你的key没变,我猜他刷新的判断key没变所以判断数据没变无需刷新,但是实际上数据确实变了,那我们就把key变一下把_renderItem = (info) => { let numColumns = 2; const { screenMode } = this.props; switch (screen

2018-01-19 11:31:28 2438

原创 React Native 监听Back双击退出实现+APP前后台状态监听

/** * 关于前后台监听,HOME直接后台不执行component相关周期函数,back * 后台是执行的,back后返回应该是重新render了,所以监听HOME或者 * BACK可以同一使用APPState的状态码来操作 * APPState是有三个状态码的,有一个不常用就没写 */import React, { Component } from 'react

2018-01-16 14:14:53 4487 4

原创 自定义ImageView实现

目的效果如下: 这里就只针对上方的ImageView,中间的是复合布局就行,下方是banner图,至于状态栏的统一色处理之前也有说到。分析下上方带勾勾的view,这里只扩展ImageView就可以实现了的。 考虑如下:上边圆角,下方正常模特ID文字绘制带勾勾的折现绘制分析下需要重绘模特图片,然后绘制文字就不说了,下边的勾勾曲线我实现是这样的画了左右两个矩形,中间画了两个三角填充白色。其实

2017-12-06 11:05:56 818

原创 Android设置系统主题颜色

经常有看到某些应用设置主题颜色比如: 这个是如何实现的呢?思考一下,这个状态栏的颜色取值于系统预设的三个基本色ColorPrimary,我们修改这个可以改状态栏的颜色,但是想要动态的随心所欲就不太现实了。我想到的方法是,自定义系统状态栏,和titlebar然后自己就可以随心所欲了。 步骤:设置全局Theme为NotitleBar类型的Theme获取状态栏高度(顺便获取下底部菜单栏高度,部分机

2017-12-01 11:00:58 6028

原创 Retrofit自定义GsonConverter+Exception拦截json解析异常问题

最近使用到Retrofit的请求对服务器数据反序列化,出现的问题是: 服务器数据返回成功如下:{“status”:1,”msg”:”请求成功”,”result”:{……}} 失败如下:{“status”:-1,”msg”:”请求失败”,”result”:”“}反序列化的问题就是配置相应的结果bean的时候,如果设置Result为String类型,成功转型失败,而且就算成功里边结果信息也没有转化,

2017-11-22 14:00:31 5628

原创 Android 系统状态栏统一色实现+侧滑抽屉全屏实现

这里自定义实现,不使用三方控件,4.4系统以上可用。效果如下: 配置一project工程模式下,res目录新建 values-v19和values-v21两个文件夹,加上默认的values,一共三个values,每个values下保证有styles.xml文件,这个是系统根据版本自动区分加载资源文件,必有内容如下:values–>styles.xml:<!--NoActionBar主题自定义Bar

2017-11-22 12:10:41 2037

原创 Android制作lib--可依赖三方库

制作三方可依赖的lib或者module 平时总是依赖引用三方的库或者控件,自己也来打造一个自己的库吧,刚好试题里有要求就一起来学习下吧步骤new–Android projectnew–Module 选择Android library 然后引导到finish即可发现android library模式创建的东西相比平时的项目少了很多东西,其实请示的app module也是一个module相比e

2017-10-05 23:24:14 1734

原创 Android 试题滑动刻度尺--自定义View

这个题是某公司试题,挺有新意,正好记录下自定义View的用法。题目如下:效果图gif中还有左右滑动的动态改变功能。分析过程 分析一下题目,明显是要用到自定义View了,还有要求使用系统接口完成,所以不能出现第三方控件来绘图;可配置要求引用控件的时候有相关参数的引用设置;可复用,要求可作为三方库使用或module依赖。分析到预览图的结构,绘制的大概有:位置Text区域倒三角指示两种刻度标绘制以

2017-10-05 16:35:49 1295 1

原创 Android Studio中关于Java的单元测试

Android Studio中 我们新建的项目中结构如下: 都知道我们常在java文件夹下的第一个(无括号后缀)包下开发,但是后两个是干嘛的额? 其实后两个是预留的单元测试的包,studio为我们自动创建了。 androidTest的标志是附带AndroidSDK的测试用例,也就是android相关的测试。 test则是纯java的测试,并且测试用例,模板也可以自动生成的。test包下的j

2017-09-08 20:50:46 739

原创 基于Kotlin(可转Java)开发的网易云音乐爬虫项目

简介 基于kotlin环境开发,但转Java是可以的,只是多写点代码而已。直奔主题,我是朝着云音乐的评论去的,在接口没有暗改前这个还是可以使用的,具体技术参见:CloudMusic 先说一下使用方法,一个简单的示例: 输出就不贴了,下边逐个来说一下使用需要知道的事项: 音乐搜索 /** * 音乐搜索,返回SongResult * @Param name 搜索名 *

2017-08-23 22:39:26 1285

转载 正则表达式

转载一篇吧:这个先不总结了。 地址:https://deerchao.net/tutorials/regex/regex.htm

2017-07-30 10:58:36 254

原创 Android中.9图片的说明和绘制

.9图片的理论 .9图片也是图片的一种,后缀.9.xxx,比如photo.9.png,图片的作用是用在不同布局的时候自动拉伸,以确保图片指定区域不失真,也就是不变形图形区域拉伸背景区域,从而让图片适应各种需求布局。与普通图片的区别就是适应性提高。提醒不要自己改某图片后缀.9.png,这样是没用的。.9图片扩展是自动的,也就是不允许开发人员定义扩展尺寸信息,.9图片四周比普通图片多一圈一像素的空白区

2017-07-28 15:03:14 653

原创 Android框架中的MVC、MVP、MVVM设计思想

框架和设计模式的异同 框架并非设计模式,框架中包含有设计模式,对框架而言是对相同行为代码的重用,而设计模式是对相同结构代码的重用。框架适用于系统模块开发,而设计模式适用于功能模块开发。框架是大智慧,对系统软件设计进行分工,明确各自职能; 设计模式是小技巧,对具体问题提出应对策略,提高代码复用率,降低系统耦合。框架的适用性 并不是开发一个系统就需要使用框架,框架所做的事是把模块分离开发,让专业

2017-07-27 13:45:38 878

原创 HTML解析利器--Jsoup学习(基于kotlin编码)

Jsoup 基于java平台的HTML解析工具,针对HTML字符串,URL地址。功能 1. URL基于网络解析HTML 2. HTML字符串解析 3. 类DOM或CSS选择器解析 4. 解析Body片段字符串、文件、网络解析、DOM树解析、选择器解析:package utilimport org.jsoup.Jsoupimport org.jsoup.nodes.Document

2017-07-26 12:14:40 2220

原创 思维导图

思维导图是做什么的 生活中很多事情并不需要刻意的去学,比如电脑开机键,你看到主机上的常用电源标示符和生活常识(这是个按钮,可以按下)就大概能猜到开机操作。思维导图大体上起到的作用也类似于这个例子,当其他人拿到你所做的导图后,不需要太多询问就总体上明白你想表达的意思。还有一种情况是分支太多而阅读起来也不能瞻前顾后,所以用图示的方式一目了然。 关于思维导图的长篇大论百科里都有想了解一下的自己查查,这里

2017-07-20 21:04:50 1128

原创 快速排序--基准定位,分而治之

快速排序的思想 快速是这个算法的特点,所以为了效率出现频度也会很高。快速排序:基准元素+二分思想,分治的标准是相比于基准元素值的大小(比如相比于基准元素大的放右边,小的放左边),分治思想的执行提高了执行效率。快速排序代码public class QuickSort {//快速排序的递归排序 public static void main (String args[]){ //

2017-06-25 14:49:14 614

原创 23种设计模式总结

前言设计模式属于系统架构,是程序员长期以来的经验总结,不是一门技术性语言。设计模式的作用就是让你的代码系统解耦合,可最大力度的提高系统灵活扩展性。当然用设计模式和不用设计模式也许都可以实现代码预期目的,但如果想要你的系统易于维护,考虑长远的发展的话,这种经验就不可或缺。不会偷懒的程序员不是好程序员,时间是很宝贵的。分类(基本按照使用频率顺序排列,个性特点简语已归纳,如需详细了解请点击连接)设计模式

2017-06-23 14:24:47 447

原创 访问者模式--要风得风,要雨得雨(行为模式11)

什么是访问者模式 封装一些作用于某种数据结构中各元素的操作,它可以在不改变这个数据结构的前提下定义作用于这些元素的新操作。 这是最后一个模式了,不知不觉也快要结束了。访问者模式也是这23种模式中最为晦涩的一个了,还好使用频率并不是很高。访问者模式的适用场景 对象结构稳定,需要频繁在此对象基础上定义新操作 需要对对象内的数据操作,并不希望操作时对原对象有所影响访问者模式用例 说一个关于我们这

2017-06-23 00:53:48 345

原创 原型模式--深浅拷贝要明知(创建型模式06)

什么是原型模式 用原型实例指定创建对象的种类,并通过拷贝这些原型创建新对象。 原型模式有一个样板实例,然后通过拷贝对象的形式来生成新对象,这个在jdk中有个克隆对象,从而避免new对象。原型模式的适用场景 类初始化需要很多资源,通过拷贝避免这些资源引用的资源消耗。 new对象繁琐,或需要很多数据准备或权限审批。 一个对象需要作为模板功其他多个对象访问并对其修改时,可拷贝原对象来实现一对一修

2017-06-21 00:38:22 295

原创 冒泡排序--双层嵌套,两两比较

冒泡排序的思想 1. 比较相邻元素,按需求归位。 2. 冒泡排序双层嵌套,外层负责比较次数,内层负责比较归位数据。 3. 最大或最小数据的归位后,为优化性能不应该再次进行比较。冒泡排序实现public class BubbleSort { public static void main(String[] args){ //定义并直接初始化数组 int

2017-06-20 00:16:09 1565

原创 模板方法模式--封装相似,简而用之(行为模式10)

什么是模板方法模式 定义一个操作中的算法框架,将一些步骤引用到子类中,从而实现不改变算法结构重定向该算法的特定内容 模板方法主要针对问题解决的流程相同但是具体解决方法不同,比如我从学校乘车到火车站,流程肯定是出校门、选择交通工具、上车、下车等,而具体的选择坐公交、坐地铁、打车、坐飞机都是不确定的。模板方法模式的适用场景 多个子类有共有方法,并且逻辑基本相同 重要复杂的算法可以吧核心算法设计为

2017-06-17 22:55:13 346

原创 迭代器模式--更高、更快、更强(行为模式09)

什么是迭代器模式 提供一种方法顺序访问一个容器对象中的各个元素,而又不需要暴露该对象的内部表示。 迭代器模式又称为游标模式,迭代器模式是一个元老级别的设计模式,针对容器的访问,我们java中要设计遍历算法,迭代器算是客户端与系统之间的第三者,方便遍历应运而生。迭代器模式的适用场景 遍历容器内对象迭代器模式用例 好比我们高校Java专业有两个班级JavaOne和JavaTwo,辅导员想要获取所

2017-06-17 00:45:12 370

原创 状态模式--随遇而安(行为模式08)

什么是状态模式 当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了他的类。 状态模式中的行为是由状态来决定的,不同状态下有不同的行为,状态模式和策略模式的结构几乎完全一样,但他们的目的、本质却完全不同。状态模式的行为是平行不可替换的,策略模式的行为是相互独立可以替换的。状态模式的适用场景 对象的行为取决于他的状态并随之改变行为。状态模式用例 电视机和遥控器的关系,开机状态下我

2017-06-15 13:42:14 307

原创 策略模式--条条大路通罗马(行为模式07)

什么是策略模式 策略模式定义了一系列封装好的算法,使他们可以相互替换。 策略模式让算法独立于使用他的客户端独立变化。策略模式的适用场景 同一种问题有多重处理方式,仅仅在具体实现有差别 需要安全的封装同一类型的操作 实现同一抽象有多个子类,而又需要适用分支操作选择具体子类时策略模式用例 我们从出发地到目的地可以选择坐公交车,也可以选择打的,公交车比较便宜实惠,打的比较贵但是快且舒适,选择哪

2017-06-05 00:16:42 392

原创 观察者模式--众多通知,一步到位(行为模式06)

什么是观察者模式 定义对象间一种一对多的依赖关系,使得每当一个对象改变时,所有依赖于他的对象都会得到通知并被自动更新。 观察者模式在实际应用中非常的广泛,他的重要作用就是把观察者和被观察者解耦,使得彼此依赖更小。好比我们android开发中给listview设定的Adapter,如果我们改变数据并通知Adapter,则我们listview的所有目标item数据内容就会相应改变。观察者模式的适用场

2017-05-22 19:53:40 384

原创 备忘录模式--玩到尽兴须保存,下次开机继续玩(行为模式05)

什么是备忘录模式 在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存该状态,以后可用来恢复对象保存的状态。备忘录模式就像我们对于现阶段所做的备份,以后如果用得到就可以根据这个备份进行操作。比如windows系统的系统恢复点的创建,如我我们害怕系统突然的崩溃掉,就可以创建一个恢复点,万一系统真的崩溃了,我们就根据这个恢复点来进行系统恢复。备忘录模式适用场景需要保存某个对象某个时刻的

2017-05-22 00:30:25 372

原创 中介者模式--万能和事佬(行为模式04)

什么是中介者模式 中介者模式包装了一系列对象相互作用的方式,使得这些对象不必明显作用,从而使他们可以松散耦合。当某些对象之间的作用发生改变时,不会立即影响其他对象之间的作用。保证这些作用可以独立变化。中介者模式适用场景 对象之间交互操作过多且每个操作依赖彼此,防止修改一个对象行为影响全局。中介者模式的角色 Mediator:抽象中介者角色 ConcreteNediator:具体中介者角色

2017-05-11 01:33:41 366

原创 解释器模式--自定义语言翻译机(行为模式03)

什么是行为模式 给定一个语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。 文法和解释器是编译原理课程中的术语,这里我们说的通俗一点,以例子来说明。语法好比我们编写Java中的class{}类,然而计算机并不识别,我们想要让他识别就需要安装jdk来做解释,jvm就相比是解释器。从而让我们写的代码可以运行在计算机上。行为模式的适用场景如果一个简单语言需要通过翻

2017-05-10 23:36:04 533

原创 AsyncTask使用详解

AsyncTask定义和Handler作用相似,AsyncTask也是为了处理异步任务的。代码操作上AsyncTask比Handler轻量级,但是资源实现上Handler比AsyncTask轻量级。AsyncTask不需要Handler和新线程的介入即可完成异步任务与UI之间的更新操作。Handler不限定运行环境,而AsyncTask必须在主线程调用。AsyncTask实际上是一个线程池,最大只支

2017-05-07 15:03:19 570

原创 Handler使用详解

Handler的作用我们通常总是说Android的UI线程不能处理超过5s的耗时任务,也不能处理网络操作。因为为了性能,设计的时候并没有考虑线程安全(就是多线程操作可能同时更改同一数据从而让结果混乱)。所以限定规则,只能在主线程操作UI组件。那么我们平时开发肯定会涉及后台任务修改UI数据的,那么Handler的消息传递机制就是用其他线程处理事务逻辑,通知主线程修改UI操作的中间人。Handler、M

2017-05-07 01:43:17 493

原创 Fragment与Activity的交互方式

Fragment依赖父Activity生存,所以分Activity与Fragment交互,Fragment与Activity交互,Fragment与Fragment交互,但是都需要中间者Activity。Activity与Fragment传递数据:一般情况下,这种方式用的不及接口回调方式多。场景: Activity启动Fragment,但传入参数不同,例如,listview点击列表项,启动frag

2017-05-05 11:21:42 1199

原创 命令模式--把需求记录在案,让事务灵活可变(行为模式02)

什么是命令模式 将单个请求封装成单个对象,客户端可调用不同请求完成任务。对请求有所记录,或可支持撤销等操作。命令模式的适用场景 需要支持事务操作。 需要有类似于日志记录的功能,可在执行之前做修改操作,或意外丢失可执行恢复工作。 抽象出需要执行的动作,以参数的形式提供给命令者。命令模式的角色 Receiver:接收者角色。执行具体逻辑的角色。 Command:命令角色,定义总的命令抽象接口

2017-05-04 23:26:41 608

原创 责任链模式--一级一级觅佳音,总有一款适合你(行为模式01)

什么是责任链模式 使多个对象都有机会处理请求。 这个行为模式的关键就是在链的使用,寓意就是对象的链式调用,我解决不了的问题交给下一个对象处理,一级一级的调用,直到找到能解决的对象为止。责任链模式的适用场景 多对象处理同一请求,但具体处理的对象动态决定。 请求处理对象不明确,轮询处理。责任链模式中的角色Handler:抽象处理角色–抽象声明处理方法,并引用下一节点ConcreateHand

2017-05-04 18:16:27 640

原创 Android getResource().getColor(int)过时解决方法

使用getResources().getColor(R.color.colorAccent)被画上横线,提示这个方法过时了替换成如下即可: ContextCompat.getColor(Context,R.color.colorAccent) 注意传入的参数有两个,一个是上下文环境,一个是颜色值。例如:mButton_message.setBackgroundColor(ContextCompa

2017-05-02 10:45:43 1715

原创 getAllNetworkInfo()过时解决方式

笔记:connectivityManager.getAllNetworkInfo()提示过时解决方法public boolean isConnectingToInternet() { ConnectivityManager connectivityManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_

2017-05-01 15:31:09 7225 4

原创 Fragment使用详解

Fragment角色分析 Fragment是Android 3.0引入的新API。Fragment意思是片段,Activity就像是一个商店,Fragment就像是顾客,顾客在商店里才能实现顾客的身份和对应功能,商店关门(销毁),顾客身份就也不在了,顾客可以有自己的挑选商品,付费,自己离开等自己的行为。 所以梳理下来就是,Fragment必须依赖Activity生存,Fragment有自己的生命

2017-05-01 15:24:28 632

原创 ContentProvider使用详解

ContentProvider简介 每一个Android应用程序就是一个进程,都是一个单独的虚拟机,他们之间也可能会有通信的需求,比如短信程序的联系人选择需要用到通讯录的联系人功能,ContentProvider和ContentResolver搭配使用,ContentProvider负责以一定规则暴露数据,ContentResolver负责把属于按照规则读取出来。ContentProvider实现

2017-04-28 10:44:26 626

FragmentDemo

简易的FragmentDemo

2017-05-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除