自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

1998DmjzZZ瞎bb

一个没有梦想的伪程序员

  • 博客(61)
  • 收藏
  • 关注

原创 【flutter】flutterboost监听生命周期

我看网上关于这个的很少,记录一下定义 ContainerLifeCycle state; BoostContainerSettings settings;在initstate里FlutterBoost.singleton.addBoostContainerLifeCycleObserver( (state,settings){ print("state"+state.toStr...

2020-04-28 21:02:47 1155

原创 【flutter】SingleChildScrollView异步加载数据,并滑动到底端

最近有个需求是异步加载数据,移动到底端,折磨了好久。页面大概就是上面一张图片,下面是文字列表。图片是本地的,文字列表是调接口获取的。reverse:false并不能满足我的需求,因为当文字列表少的时候,页面居底部对齐,上面会留白。网上的方法大体都是 SchedulerBinding.instance.addPostFrameCallback((_) { scro...

2020-04-14 13:28:05 1264

原创 【flutter】封装自定义单选框

flutter里有自带的radioListTile,但是需求对ui对要求不一样,导致只能直接封装一个。大概是这样的效果,为了避免不必要的麻烦,我把文字隐藏了。我的json是以下格式的List list =[ { "content": "content1111", "reasonId":0, }, { "content": "c...

2020-03-31 11:56:27 1386 1

原创 【设计模式】用英雄联盟来解释代理模式

这期的主人公是安妮,在中路紧张的对线提莫中,好不容易到6级了,可以一套秒人了,安妮召唤出了她的熊提伯斯。然而提伯斯脑袋空空,只会一个劲的追着人拍,就需要安妮代理来控制首先构建一个接口,其实不是必要的,但是毕竟annie和Tibbers都实现了“攻击”这个功能,为了代码的规范和可读性,还是写上。并且在其他场景下可能会是必要的。public interface NormalAttack{ ...

2020-03-29 20:17:22 235

原创 【设计模式】用英雄联盟来解释装饰者模式

定义 Decorator(装饰者)侧重于为一个基础对象动态地增强它的职责或能力。这是面对排列组合所造成的子类数爆炸问题的一种灵活的解决方案。大家好,我是uzi,擅长被4保一,今天我玩的是瘟疫之源。主要靠平a输出。为了面向对象思想及方便管理攻击力及特效,我把它拉出一个接口。public interface NormalAttack{ void makeADAttack();}...

2020-03-25 14:55:38 305 2

原创 【kotlin】let with run apply also

新学kotlin,记录一些函数的例子,直接上具体使用,看demo就好。转自:文章目录letwithrunapplyalsoletkotlin、java代码对比: //kotlin fun main(args: Array<String>) { val result = "testLet".let { println(it.length) ...

2020-03-24 15:21:59 870

原创 【git】在release分支拉自己的feature分支

目前分支:release ,有代码改动git pull --rebase //把代码拉到最新,解决冲突git checkout -b feature_test //切本地分支git branch --set-upstream-to=origin/feature_test feature_test//创建远程分支并关联git push --set-upstream origin fea...

2020-03-19 19:47:58 936

原创 【flutter】动态控制按钮是否可点击

需求是:在添加信息之前先判断textfiled里面有没有输入信息,否则按钮就变灰且不能点击。监听:textfiled里面设置onchange属性,并setstate进行刷新TextField( onChanged: (value) { setState(() { ...

2020-03-17 13:39:12 1461

原创 【flutter】a跳转b页面,使用a的回调方法

最近有个需求,a页面是联系人目录页面,b页面是添加联系人页面,由a打开b,为了降低耦合性,b只负责拿到联系人的信息,由a判断是否符合规范,可以添加。这就要求要用回调的方法来解决。用了2种解决方法。1、也是网上流传的,写一个接口,用manager单例实现,再在a中注册,d中调用。**就相当于有一个全局的方法,在a中实现,d中调用。**会导致内存泄漏问题,还没有了解过怎么解决。由于我的需求有特殊性...

2020-03-17 13:04:05 993

原创 list查询object某属性值是否等于某参数

一开始想用contains方法,需要重新equals,太麻烦另辟蹊径用firstwhere示例代码:Object a = list.firstwhere((e)=>e.phone == phone);var isExistedPhone = a==null?false:true;...

2020-03-16 15:32:00 440

原创 flutter常见问题

汇总个flutter常见问题1、'package:bloc/src/transition.dart': Failed assertion: line 23 pos 16: 'currentState != null': is not true.I/System.out( 1080): #0 _AssertionError._doThrowNew (dart:core-patch/e...

2020-03-13 14:29:28 1163

原创 算法学习-1 汉诺塔+字符串反转(递归理解)

一直都不是很理解递归的思路,今天有空想理理清楚。就从经典的汉诺塔开始吧。其实问题很简单,这是示意图,a是起始柱,c是目标柱,b起到中转作用。在进行转移操作时,都必须确保大盘在小盘下面,且每次只能移动一个圆盘,最终c柱上有所有的盘子且也是从上到下按从小到大的顺序。很显然可以用递归来解决,这里先贴上正确代码。我先用5个盘来写,64个是同理的。class hanoi{ public sta...

2020-01-15 15:46:22 320

原创 Flutter 生成.g.dart文件

https://caijinglong.github.io/json2dart/index.html这个网站可以自动将json文件转成json_serializable所需要的格式,新建并复制成***.dart文件,通过在terminal内输入下面代码,自动生成.g.dart文件flutter packages pub run build_runner build如果有报错可以尝试一下下面...

2020-01-10 10:50:42 5275

原创 flutter error : program type already present

我的是缓存问题,执行flutter clean后就可以了

2019-12-30 14:31:15 395

原创 https原理解析

最近公司分享会讲了这块的内容,于是就学习了一下。在客户端和服务器中作怪的中间人无非做三件事:窃听、假冒、篡改https的出现就是为了防止中间人作怪的。这里要引入两个概念:对称加密: 对称加密又叫做私钥加密,即信息的发送方和接收方使用同一个密钥去加密和解密数据。对称加密的特点是算法公开、加密和解密速度快,适合于对大数据量进行加密,常见的对称加密算法有DES、3DES、TDEA、Blowf...

2019-12-28 16:15:56 467 2

原创 git 将项目添加到github库中

1、在github新建一个库。2、cmd 进项目的文件夹下用3、通过命令git init把这个文件夹变成Git可管理的仓库这时里面多了个.git文件夹,它是Git用来跟踪和管理版本库的。如果你看不到,是因为它默认是隐藏文件,那你就需要设置一下让隐藏文件可见。4、将该项目纳入.git版本控制中git add .5、将所有更改放到本地暂存区域,等待上传。git commit -m "此...

2019-12-25 17:38:46 187

原创 JS 将 中国标准时间 转化成 yyyy-mm-dd

中国标准时间:Sat Dec 21 2019 18:03:39 GMT+0800 (中国标准时间)一开始的方法是var date = new Date(timestamp);var Y = date.getFullYear() + '-';var M = (date.getMonth()+1) + '-';var D = date.getDate()+ ' ';var h = date...

2019-12-23 11:00:22 523

原创 Flutter学习(一) 状态管理

在flutter中有个新概念:BLOC它是一种利用reactive programming方式构建应用的方法,这是一个由流构成的完全异步的世界。先解释一下什么是流流:即Stream,用现实生活的例子就是一个带有两端的管道,只有一个允许在其中插入一些东西。当你将某物插入管道时,它会在管道内流动并从另一端流出。其实它是为处理异步事件而生的。这个大机器就是StreamController,...

2019-12-21 16:30:26 239

原创 async await

https://segmentfault.com/a/1190000016937985?utm_source=tag-newest

2019-12-17 19:17:53 137

原创 vue初试

最近刚刚开始实习,岗位是android岗,一进来根据组内需求,先学了vue,做了网页。也发现自己编程的思路有点过于固化,好菜。工作量不大,但是做了好久。用的是element的table组件(表格),记录一下问题,先写个目录。1、点击某个row,获取该row的一些信息,其中的信息是通过后台传入的。这里遇到的问题是,这里用的表格其实是由前辈们封装好的。在element文档中有利用在el-tabl...

2019-12-12 21:27:02 112

原创 JAVA学习-5 内部类种类

内部类的作用:可以间接实现多继承Java中的内部类共分为四种:静态内部类static inner class (also called nested class)成员内部类member inner class局部内部类local inner class匿名内部类anonymous inner class1、静态内部类最简单的内部类形式。类定义时加上static关键字。不能和外...

2019-10-16 20:47:28 96

原创 多线程实现方式

Java:实现多线程方式 3种package duoxiancheng;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;importj ava.util.concurrent.FutureTask;public class UseThread { public...

2019-10-08 15:28:42 123 1

原创 JAVA学习-4 查询算法

1、二分查找时间复杂度 O(logn)public static int erFenSearch(int key,int[] array,int low,int high) { int middle = (low + high) / 2; if(key < array[low] || key > array[high] || low>high) { return...

2019-10-07 10:46:04 125 1

原创 JAVA学习-3 排序算法

1、插入排序插入排序 是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。public static void insertSort(int[] array){for(int i = 1;i < array.length;i++){int temp = array[i];int j = i - 1;for(;j...

2019-10-07 10:28:53 403

原创 JAVA学习-2 多线程的三种实现方式

package duoxiancheng;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.FutureTask;public class UseThread { public static void main...

2019-10-06 18:56:11 365

原创 JAVA学习-1 有关线程

1、线程的五种状态新建(NEW):新创建了一个线程对象。可运行(RUNNABLE):线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu 的使用权 。运行(RUNNING):可运行状态(runnable)的线程获得了cpu 时间片(timeslice) ,执行程序代码。阻塞(BLOCK...

2019-10-06 16:08:48 88

原创 设计模式学习-5 工厂模式

普通工厂模式:抽象工厂(Abstract Factory):提供了创建产品的接口,调用者通过它访问具体工厂的工厂方法 newProduct() 来创建产品。具体工厂(ConcreteFactory):主要是实现抽象工厂中的抽象方法,完成具体产品的创建。抽象产品(Product):定义了产品的规范,描述了产品的主要特性和功能。具体产品(ConcreteProduct):实现了抽象产品角色所...

2019-10-01 19:56:47 69

原创 设计模式学习-4 观察者模式

定义:指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。主要角色:抽象主题(Subject)角色:也叫抽象目标类,它提供了一个用于保存观察者对象的聚集类和增加、删除观察者对象的方法,以及通知所有观察者的抽象方法。具体主题(Concrete Subject)角色:也叫具体目标类,它实现抽象目标中的通知方法,当具体主题的内部状态发生改...

2019-10-01 19:33:03 87

原创 设计模式学习-3 代理模式,装饰模式

代理模式:由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。(可以在那个类方法的前后加方法)代理模式的主要角色如下:抽象主题(Subject)类:通过接口或抽象类声明真实主题和代理对象实现的业务方法。真实主题(Real Subject)类:实现了抽象主题中的具体业务,是代理对象所代表的真实对...

2019-10-01 19:05:23 92

原创 设计模式学习-2 原型模式,建造者模式

1、原型模式:用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。主要是继承java中的Cloneable接口,是浅克隆public class ProtoTypeCitation{ public static void main(String[] args) throws CloneNotSupportedException { ...

2019-10-01 16:49:31 101

原创 设计模式学习-1 七种设计原则

开闭原则:对扩展开放,对修改关闭。当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块的功能,使其满足新的需求。里氏替换原则:子类可以扩展父类的功能,但不能改变父类原有的功能。依赖倒置原则:高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象。即 降低了客户与实现模块之间的耦合。单一职责原则:单一职责原则规定一个类应该...

2019-10-01 15:08:20 70

原创 android-12 okhttp面试

一句话概括:OKHttp3通过拦截链的设计,让请求分成5个拦截器去处理,拦截器各司其职,扩展性非常高。拦截链是从自定义的拦截器开始,然后再到默认的5个拦截器。一般情况下我们想打印网络请求日志,所以可以自定义Log拦截器,如果要给所有请求添加Header,同样可以自定义Header拦截器。5个默认拦截器的含义:1.失败重试、重定向拦截器。2.桥拦截器:主要是添加和删除一些header...

2019-09-30 13:55:38 212

原创 android学习-11 oom产生的原因及解决方案(handler的内存泄漏问题)

oom:https://www.jianshu.com/p/b0451684b4d5静态变量生命周期:https://blog.csdn.net/ctcwri/article/details/8858414

2019-09-03 17:18:22 353

原创 android学习-10 单例模式

单例模式分为大致两种,饿汉模式和懒汉模式。一、饿汉模式系统一运行就创建对象,不考虑太多的问题,所以可能会被创建多次,存在多个对象。但是明显会有浪费内存。线程安全public class Singleton{ //类加载时就初始化 private static final Singleton instance = new Singleton(); privat...

2019-09-03 14:55:50 81

原创 实现注解方式来注册控件和点击

参考:https://www.jianshu.com/p/20da6d6389e1ViewInject.java/** * @Retention 用于声明该注解生效的生命周期,有三个枚举值可以选择<br> * 1. RetentionPolicy.SOURCE 注释只保留在源码上面,编译成class的时候自动被编译器抹除 * 2. RetentionPolicy.CLASS ...

2019-09-03 10:52:51 120

原创 Androi Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'

1、删去.gradle →cleanProject 失败2、在android/app/build.gradle文件的defaultConfig中添加 multiDexEnabled true 失败3、发现自己是因为升级到android studio 3.4版本后出现这个问题,但是没有更新gradle。更新完gradle,问题解决...

2019-07-30 10:42:31 99

原创 Android Error : Execution failed for task ':app:processDebugManifest'.

今天导入别人的项目时遇到了这个问题。1、打开Termianl ,输入命令 gradlew compileDebug --stacktrace这个之后,会显示一些具体出错的信息。2、我遇到的错误信息是Error occurred during initialization of VMCould not reserve enough space for 1572864KB object hea...

2019-07-29 18:28:46 82

原创 AR尝试(2)---给当前屏幕截图

在AR尝试(1)中实现了以摄像头为底,但是采用的方法是通过marginLeft来"裁"去左边,通过设置html左右不能滑动来"裁"去右边,但是video的实际宽度还是比window.innerWidth大的。现在要实现对当前屏幕进行截图,第一想法就是通过canvas的drawImage方法来对屏幕进行裁剪,但是尝试了很多次,试过3、5、9个参数的,呈现效果均是让人匪夷所思。最后在一篇博文中看到,...

2019-07-25 14:45:56 188

原创 AR尝试(1)---js调用摄像头为底

最近在做一个用网页端的人体姿态识别的demo,遇到一些坑,记录一下。首先遇到的问题是用js调用摄像头为底。这里我参考了EASY-AR的demo分为2个文件 main.js 和 ClassAR.jsmain.js:function firstOpenCamera(){ classAR.listCamera(videoDevice) .then(msg => {...

2019-07-25 14:26:05 571 1

原创 Three.js更换版本后模型消失

1、camera.lookAt(0,0,0);2、renderer[type].setClearColor(0x212121, 1.0); //原来是new THREE.Color(0x0x212121, 1.0)

2019-05-31 20:56:10 433

空空如也

空空如也

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

TA关注的人

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