自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(116)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 微信小程序可添加图片描述的wx.previewMedia

前言产品说什么也要在大图预览下加图片描述,我说微信小程序不支持,wx.previewImage和wx.previewMedia都是我们自己改不了的。但是无奈非得要,那我说:加可以,但是做不到像wx.preview那样完美,右上角会有胶囊按钮,其它体验也会也些差距。为了加这个图片描述,我是抽业余时间搞了好多天才搞出来,真是。。。示例动图实现思路和方案1. 将navigationBar隐藏掉,然后黑色背景一搞,左右切换使用swiper。2. 因为考虑到swiper加载item太多会有渲染问题,我们在

2020-09-24 10:49:06 4907 2

原创 微信小程序答题页——swiper渲染优化及swiper分页实现

前言swiper的加载太多问题,网上资料好像没有一个特别明确的,就拿这个答题页,来讲讲我的解决方案这里实现了如下功能和细节:保证swiper-item的数量固定,加载大量数据时,大大优化渲染效率 记录上次的位置,页面初次加载不一定非得是第一页,可以是任何页 答题卡选择某一index回来以后的数据替换,并去掉swiper切换动画,提升交互体验 问题原因当...

2020-01-13 14:24:08 6317 20

原创 flutter TapBar自定义indicator、固定宽度、圆角、改变indicator和text的距离

前言最近开始搞flutter,然后想去使用TabBar,遇到了一些坑,记录一下。分析过程需求是这样:需要处理这样几个细节:下划线固定宽度 下划线圆角 下划线和文字的间距 两个文字之间的间距然后在使用TabBar过程中:下划线想固定25,indicatorSize只有两个属性,一是与tab父布局同宽,二是与字同宽 圆角看看能不能用自定义indicator来实现...

2019-12-21 16:37:07 12868 13

原创 左右两侧两个RecyclerView互相联动,右侧是网格的布局,写出最流畅的列表

概述最近做项目需要用到两个RecyclerView互相联动的功能,类似美团外卖的点餐列表,不同的是项目用到的右侧是点击分类,要想写出流畅的列表,就一定要考虑得非常的周全,那么左侧一个RecyclerView,右侧一个RecyclerView,尽量减少嵌套,对于如下这种布局我们可以考虑使用GridLayoutManager,然后通过Recyclerview多布局和GridLayoutManage...

2018-05-22 23:16:23 7611 12

原创 Flutter 跳转应用市场评分——超简洁实现

最近在做flutter跳转去应用市场评分的功能,虽然是一个很小的功能,但是要做的既简单又高效,同时又能把细节考虑到,还是有坑要走的,这边记录一下。

2023-07-17 21:27:57 1231 1

原创 Flutter 仿抖音、豆瓣、知乎、番茄小说的评论弹窗开发实践

最近用flutter做了一个评论弹窗的功能,本来以为很简单的烂大街的一个功能,结果却遇到了不少的问题,而且这些问题我觉得很有意义,以至于我觉得我如果分享出来可能会对其他人很有帮助。

2023-07-05 12:58:51 4365 5

原创 Flutter 可冻结的侧滑表格 sticky-headers-table 结合 NestedScrollView 吸顶悬浮的使用实践

一个类似云文档中表格固定顶部栏和左侧栏的需求,也就是冻结表格的功能。

2023-05-26 19:45:33 2022

原创 Flutter 透明视频播放插件——基于字节跳动AlphaPlayer

对字节跳动官方原生组件AlphaPlayer的Flutter版本的封装,用于播放透明视频,mp4格式的透明视频、复杂礼物动效动画、直播礼物动效动画

2023-04-27 16:38:17 1822

原创 Flutter MMKV 初始化失败 Failed to load dynamic library ‘libmmkv.so‘

出现一个bug:vivo y66 (android 6.0)的一个手机,在被杀死进程后,重新进入,mmkv初始化失败,会报找不到so库的错。这个stackoverflow的老兄说的还行,就是那个DynamicLibrary加载的问题。因为是对原来的上面这个方法进行的一个tra/catch,那么其实是不影响以前的逻辑的。也查了很多,包括mmkv的issue里面也找了很多,但是感觉都没有解决问题。将修改后的mmkv替换原来的mmkv,再次试验,初始化成功了。修改_nativeLib的获取逻辑。

2023-03-07 21:06:20 1224 2

原创 Flutter Mqtt连接阿里云失败

之前用Android原生可以连阿里云没问题,这边也都是走通的,但是到flutter怎么都连不上,那就解决问题呗,一步一步来:下载了一个Mqtt.fx把参数都输进去,确保可以连接成功,那真的可能就是mqtt_client这个库的问题了各种配置检查了好几遍,确定没问题了,但是就是连不通设置了client.secure = true;报错:flutter: Exception: HandshakeException: Connection terminated during hands

2022-04-15 14:16:26 4339 1

原创 Flutter xCode Module ‘amap_core_fluttify‘ not found | Module ‘.....‘ not found

拷贝新项目下来,遇到上面这个问题,咱也不是专业弄ios的,这个问题边写别的项目边找解决方法,断断续续弄了两天,真的是很烦人项目可以build成功,也可以archive成功,但是就是在android studio 和xcode里面运行不起来在网上找了解决方案:https://blog.csdn.net/piaojiancong/article/details/115083062但是还是不行,无论什么操作,什么clean,什么重新拉项目,什么pod install,什么应该打开xcworkspa..

2021-04-15 11:24:08 1716 8

原创 第八章:多态

第八章 多态多种类型(从同一基类导出的)视为同一类型来处理 同一份代码也就可以毫无差别地运行在这些不同类型之上了8.1 再论向上转型对象可以作为自己本身使用,也可以作为它的基类型使用 把对某个对象的引用视为对基类型的引用的做法被称作向上转型public class Car { public void move() { System.out.prin...

2021-01-09 10:36:05 928 1

原创 第五章:初始化与清理

第五章 初始化与清理初始化和清理正是涉及安全的两个问题,Java中也引入了构造器,并额外提供了垃圾回收器5.1 用构造器确保初始化构造方法会在new对象的时候,也就是我们调用对象之前去执行一些初始化的操作 那么我们也可以在构造方法中去传参 如果某一种构造器是类中唯一的构造器,编译器不会允许你以其他任何方式创建该对象练习1、创建一个类,初始化String为nullpub...

2021-01-09 10:35:31 451

原创 代码整洁之道读书笔记——第十一章:系统 && 第十二章:迭进

第十一章 系统复杂要人命。它消磨开发者的生命,让产品难以规划、构建和测试11.1 如何建造一个城市城市能运转,还因为它演化出恰当的抽象等级和模块11.2 将系统的构造和使用分开

2020-11-04 18:33:17 217

原创 设计模式——策略模式和状态模式

策略模式定义:通过定义一系列的算法,并将每一个算法封装起来,可以使他们相互替换,并让算法可以在不影响到客户端的情况下变化针对同一类型问题的多种处理方式,需要安全的封装同一类型操作时,可以使用策略模式我们在开发中,自己曾经写过或者看到其他的开发者写过超级多if/else语句的情况,其实这是一种很烂的写法,接下来我们用一个简单的例子来说明一下,公共交通工具的计费计算,我们大部分的人很有可能就这样写了:public class Calculator { public static fin

2020-10-30 18:34:41 513

原创 设计模式——工厂方法模式

工厂方法模式需要生成复杂对象的地方,可以使用工厂模式,如果只用new就可以完成创建的对象无需使用工厂模式简单工厂/静态工厂模式简单工厂可以为我们创建一个实例,而我们不用知道细节,我们只需要去使用而不需要知道它是如何创建的如果我们确定工厂类只有一个,就可以用简单工厂模式:一个产品基类,若干产品类继承这个基类,一个工厂类静态方法根据传入的不同参数来生产产品,也算达到工厂模式的一个基本功能,将实例化对象的操作封装起来,这里我是直接想到迪米特原则,最少知道原则,调用者只是想要一个对象实例,而不想关心

2020-10-27 18:36:03 108

原创 代码整洁之道读书笔记——第十章:类

第十章 类10.1 类的组织从上往下,从一组变量列表开始:公共静态常量、私有静态变量,私有实体变量封装我们喜欢保持变量和工具函数的私有性,有时需要用到受保护变量或工具函数,好让测试可以访问到我们首先会想办法使之保有隐私,放松封装总是下策10.2 类应该短小70个方法的类确实有些太长了,5个方法的类虽然方法数少,但是拥有太多的权责类的名称应当描述其权责10.2.1 单一权责原则类或者模块应该有且只有一条加以改变的理由鉴别权责(修改的理由)常常帮助我们再代码中认

2020-10-24 16:53:50 223 1

原创 代码整洁之道读书笔记——第九章:单元测试

第九章 单元测试编写单元测试是很有必要的9.1 TDD三定律测试驱动开发在编写不能通过的单元测试前,不可编写生产代码 只可编写刚好无法通过的单元测试,不能编译也算不通过 只可编写刚好足以通过当前失败测试的生产代码总的来说就是先写测试再写生产代码,写一个测试就应该立即写它的实现代码9.2 保持测试清洁...

2020-10-24 11:32:09 204

原创 代码整洁之道读书笔记——第八章:边界

第八章 边界我们很少能控制系统中的全部软件,有时用的第三方或者开源代码,有时用我们公司其他人打造的组件或者子系统,无论哪种情况,我们都得将外来的代码干净利落地整合进自己的代码中8.1 使用第三方代码第三方API的作者追求普适性,吸引广泛的用户。使用者想要集中满足特定的需求,这两者有一种张力,会导致系统边界上出问题作者举了一个例子:// 这段代码不太整洁,而且没说明自己的用途Map sensors = new HashMap();Sensor s = (Sensor)senso

2020-10-23 18:25:25 224

原创 代码整洁之道读书笔记——第七章:错误处理

第七章 错误处理7.1 使用异常而非返回码如果给调用者返回某些错误码,可能会导致代码凌乱不堪,我们应该用异常去替代错误码作者给出的例子就不说了,使用异常后,我们的代码整洁了许多。。。7.2 先写Try-Catch-Finally语句在编写可能抛出异常的语句时,最好先写出try-catch-finally语句7.3 使用不可控异常可控异常的代驾就是违反开放、闭合原则,对于一般的应用开发,我们尽量使用不可控异常7.4 给出异常发生的环境说明应创建信息充分的错误消

2020-10-23 16:25:27 214

原创 代码整洁之道读书笔记——第六章:对象和数据结构

第六章 对象和数据结构6.1 数据抽象作者通过一个例子说明了暴露实现和隐藏实现一种是类中包含public修饰的变量,另一种是抽象接口不愿暴露细节,更愿意以抽象形态表述数据。不要傻乐着乱加取值器和插值器6.2 数据、对象的反对称性这一小节说了一个问题,就是过程式代码和面向对象式代码,其实我对此也是深有感触我们就说一个实战问题,系统中有3个角色:学生、老师、校长有很多界面,因为角色的不用需要展示不同的view,或者说有不同的功能如果我们用过程式代码来写:priva

2020-10-22 01:51:22 174

原创 代码整洁之道读书笔记——第五章:格式

第五章 格式团队应该一致同意采用一套简单的格式规则5.1 格式的目的能让代码工作,这是最基本的要求。但是代码格式同样很重要,我们今天编写的功能,很有可能下一个版本就会被修改5.2 垂直格式短文件通常比长文件易于理解5.2.1 向报纸学习名称应该一目了然,而且报纸的文章多数短小精悍5.2.2 概念间垂直方向上的区隔变量之间可以不用空行,方法和方法间要空行,变量和方法之间也要空行,空白行隔开了概念5.2.3 垂直方向上的靠近靠近的代码暗示了它们之间的紧密关系

2020-10-21 11:34:58 240 2

原创 代码整洁之道读书笔记——第四章:注释

第四章 注释尽管需要注释,但是我们尽量减少注释4.1 注释不能美化糟糕的代码与其花时间为那些糟糕的代码写注释,还不如花时间好好清理那些糟糕的代码4.2 用代码来阐述很多时候代码就可以解释我们大部分的意图比方这样的代码:你愿意看到这个?if (info.gender == FEMALE && info.age == ADMIN)还是这个?if (info.isFemaleAdmin())我们只需要创建一个描述与注释所言同

2020-10-21 02:22:02 190

原创 代码整洁之道读书笔记——第三章:函数

第三章 函数作者将一个复杂的函数提炼为9行代码,告诉了我们什么样的代码易于阅读3.1 短小作者的建议是一个函数封顶20行最佳,每个函数之说一件事,每个函数依序把你带入下一个函数。if、else、while语句等,其中的代码应该只有一行,大概是一个函数的调用语句。调用函数应具有比较有说明性的名称,这样也能增加一定的文档的价值。我这么理解:20行封顶、函数带入函数、控制代码块中的行数、控制缩进。我们可能无法做到作者说的if、else、while语句的代码块只有一行,缩进层级只是一层

2020-10-20 18:40:06 201

原创 Java是引用传递还是值传递?

突然想起自己在刚学Java的时候,成员变量名和方法参数名相同时,我搞不清楚set方法中的this到底是指的哪个值。想想真的挺搞笑的,但是当时确实就是想不明白,哈哈。这种类似傻傻分不清的问题,Java的传递问题算一个,今天来总结一下。直接先解答问题: 在Java中方法参数传递的方式是按值传递的。 参数是基本类型,传递的是基本类型的字面量值的拷贝。 参数是引用类型,传递的是所引用的对象在队中地址值的拷贝。 或者有的更官方一点的说法叫:Java函数调用时采用的求值策略为值传递。如果你理解上面的几句话,

2020-09-05 18:00:08 139 2

原创 《漫画算法》笔记

一 算法概述算法一系列程序指令、用于解决特定的运算和逻辑问题数学中的算法比如求1加到10000的解法,计算机领域算法可以应用在比如运算、查找、排序、最优决策、面试数据结构数据的组织、管理、和存储格式、目的是为了高效的访问和修改数据线性结构:数组、链表、栈、队列、哈希表树:二叉树、二叉堆图:呈现多对多的关系其它:跳表、哈希链表、位图等时间复杂度当n的取值足...

2020-01-06 18:29:23 332

原创 Flutter text超出一行省略号及Expanded的坑

搞一个这样简单的布局:就拿第二行来说吧,需要实现地址超出宽度后省略号显示,然后还需要显示一个箭头。那大体思路就是这样的了:写完搞定:但是报错:RenderFlex children have non-zero flex but incoming width constraints are unbounded.意思就是组件被赋予了无限大小然后下边一堆报错然后我发现...

2019-12-26 09:58:41 8099

原创 Java四大引用、了解一下。

前言Java中的引用很多开发者可能都不太清楚具体是什么、我们来总结一下强引用(Strong Reference)我们平时最常用的那就是强引用:Object object = new Object();只要某个对象与强引用有关联,JVM必定不会回收这个对象,哪怕内存不足,抛出OutOfMemory也不回收这种对象软引用(Soft Reference)SoftRefer...

2019-12-12 18:25:47 194

原创 匿名内部类访问的局部变量为什么需要用final修饰?

前言看到标题,有一种很熟悉的感觉,我相信只要有几个月开发经验的人,总会遇到一个问题:匿名内部类访问的局部变量,必须用final修饰,要不然编译不通过。很多人都知道需要加final,但是这是为什么呢?原因一句话解释:保持数据的一致性。基本数据类型:保持值的一致性 引用类型:保持引用的一致性匿名内部类访问局部变量,编译器会拷贝一份使用的值通过匿名内部类的构造方法传进来如果方法中...

2019-12-12 16:39:55 1017 2

原创 Android 数据库总结

前言Android的数据库是很方便的,但是很多的时候,Android程序员很少使用数据库,包括我在内,目前在我们的项目中还没用过数据库,但是不常用不代表不需要掌握,我们来大体总结一下SQLite给个链接:Android SQLite详解再给个链接:SQLite常用语句我自己基于用户、帖子、访客三个表写了一个Demo:数据库Demo首先创建一个DBHelper类继承SQLit...

2019-12-04 17:49:10 402

原创 微信小程序rpx适配误差问题

在开发小程序的时候遇到了两个有关计算view高度发生的问题,解决也花了不少的时间,特此记录一下。一、计算view高度和实际情况匹配不上一个列表展开后显示若干卡片,我做了一个展开动画,需要计算总的高度。// 卡片高度100 上下margin 各为8height: 110rpx;margin: 8rpx 6rpx 8rpx 6rpx;// 我开始计算 一行的高度是12...

2019-11-29 15:52:06 4465

原创 Serializable和Parcelable总结

前言Android开发中难免会遇到对象序列化的场景,比如说将对象从一个Activity通过Intent传到另一个Activity,比如说存储到本地等等。大体的总结一下序列化的知识吧。Serializable意为“序列化的”意思什么是序列化序列化:把对象转换为字节序列的过程 反序列化:把字节序列转换为对象的过程什么时候需要序列化当你想把一个对象通过Intent传递到...

2019-09-02 18:34:23 329

原创 Java文件流使用总结

前言其实对于刚学Java的人来说,对文件流的概念总是很模糊,我记得我当时就是懵懵懂懂,而且文件流操作伴随着一堆try-catch代码,乱七八糟的,看的头疼。今天来总结一下文件流相关概念吧简述Java读写文件流分为两大类:字节流、字符流字节流:可以处理所有类型的数据,包括音频视频图片,主要操作byte类型数据字符流:只能处理文本数据// 输入流只能读// 输出流只...

2019-08-27 18:14:45 2120

原创 LruCache和DiskLruCache

前言Android中的三级缓存主要就是内存缓存和硬盘缓存。Lru(least recently used)意为最近最少使用算法,核心思想就是当缓存满时,会优先淘汰最近最少使用的缓存对象。LruCache的使用在Android中可以直接使用LruCache,算法原理是:把最近使用的对象存储在LinkedHashMap中,当缓存满时,把最近最少使用的对象从内存中移除,并提供了ge...

2019-08-27 15:08:51 212

原创 Bitmap内存优化

前言Android开发中,Bitmap是我们经常会遇到的对象,尤其是在各种图片展示等界面,而且Bitmap的内存也是很大的,如何更好的使用Bitmap,是Android优化不可回避的问题Bitmap的使用// bitmap的构造方法参数很多,这是一个给native层调用的方法// BitmapFactory类中有一系列的decodeXXX方法,用于解析资源文件、本地文件、流等...

2019-08-26 15:30:03 218

原创 简单说说Socket

前言总结一下Socket的基本知识TCP/IP协议IP提供了主机与主机间的通信TCP提供了进程与进程间的通信,让我们知道收到的数据是属于哪个进程为了标识数据属于哪个进程,我们给需要进行TCP通信的进程分配一个唯一的数字来表示它,这个数字就是我们常说的端口号在通信息前,通信双方需要先进过一个三次握手的过程,握手完成后连接就建立了(与之相对的是UDP,不需要经过握...

2019-08-22 18:27:49 163

原创 简单说说Http

前言总结一下http的一些基础知识http报文// 格式大部分分为: // 起始行 // 头部 // 包体// 注意格式中的空格、回车符、换行符// 请求报文 <method> <request-url> <version> 请求方法 URL 协议版本<headers> ...

2019-08-21 18:33:54 272

原创 自定义View-全新定制自定义View的尺寸

前言完全自定义View的尺寸以及布局是与之前的不一样的,我们来总结一下全新定制自定义View的尺寸// 跟修改已有View的尺寸不一样的是: // 不需要调用super.onMeasure(), 完全自己计算 // onMeasure()中的两个参数是父View传递过来的限制 // 限制的分类: // 1 UPSPECIFIED 不限制 ...

2019-08-19 15:25:39 432

原创 自定义View-布局基础

前言自定义View的内容不光有绘制,还有布局,而且绘制是去调用已知的API,而布局就得需要我们去理解它内部的工作原理才能正确的去使用它,我们来总结一下吧基本原理// 测量阶段 // 从顶层的根View开始去测量和布局 // 子View的measure()方法会被父View调用, 然后最调用onMearsure(), 让View进行自我测量 ...

2019-08-16 16:05:22 232

原创 自定义View-属性动画Property Animation进阶篇

前言总结一下稍稍复杂的属性动画吧TypeEvaluator当我们需要用其他类型来做属性动画的时候,就需要用到TypeEvaluatorArgbEvaluator// 使用方法ObjectAnimator animator = ObjectAnimator.ofInt(view, "color", 0xffff0000, 0xff00ff00); animator...

2019-08-15 09:52:58 207

简单的仿小米计算与单位换算

模仿小米计算器和单位转换,功能没那么全面,只是简单的做了几个,很简单的功能,但可以实现基本的计算和转换,适合新手学习,有不足地方多多包涵!

2017-08-23

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

TA关注的人

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