摘要: 本文基于1.12.13+hotfix.8版本源码分析。 一、RenderBox的用法 1、RenderBox的使用基本流程 在flutter中,我们最常接触的,莫过于各种各样的widget了,但是,实际负责渲染的RenderObject是很少接触的(它们之间的关联可以看看闲鱼的这篇文章:https: 阅读全文
posted @ 2020-05-21 17:06 jyau 阅读(6462) 评论(1) 推荐(0) 编辑
摘要: 本文基于1.12.13+hotfix.8版本源码分析。 [TOC] 1、Image 点击进入源码,可以看到Image继承自StatefulWidget,那么重点自然在State里面。跟着生命周期走,可以发现在didUpdateWidget中调用了这个方法: 在这里调用了image(ImageProv 阅读全文
posted @ 2020-04-05 16:36 jyau 阅读(1858) 评论(0) 推荐(0) 编辑
摘要: 1、问题 周末在家想搞搞flutter,家里电脑是windows的,按照官网教程一步步安装好以后,创建flutter工程,点击运行,一片红色弹出来,WTF? 2、尝试 (1)导入证书 https://blog.csdn.net/frankcheng5143/article/details/52164 阅读全文
posted @ 2019-09-08 18:04 jyau 阅读(3174) 评论(0) 推荐(0) 编辑
摘要: 一、绘制流程源码路径 1、Activity加载ViewRootImpl 2、ViewRootImpl启动View树的遍历 二、View绘制流程 1、measure (1)MeasureSpec是什么? 重写过onMeasure()方法都知道,测量需要用到MeasureSpec类获取View的测量模式 阅读全文
posted @ 2019-08-03 15:28 jyau 阅读(3701) 评论(1) 推荐(0) 编辑
摘要: 参考文章:https://www.jianshu.com/p/c138055af5d2 1、比较lastItem的pos 通过比较当前屏幕可见最后一个item的position和整个RV的最后一个item的position,是同一个则到达底部。 上面通过 获取最后一个可见item的pos,导致最后一 阅读全文
posted @ 2019-05-16 11:19 jyau 阅读(4496) 评论(0) 推荐(0) 编辑
摘要: 1、背景&解决方法 最近碰到一个需求,app监听特定的广播,接收到广播后启动自己再进行处理。需求很简单,静态注册就好,不过,在自测的时候遇到一个问题,app安装后没启动过的状态下,什么广播都收不到!なにもない! 后来,网上各种查,找到了“罪魁祸首”:Android 3.1以后新增的stopped机制 阅读全文
posted @ 2019-03-26 17:18 jyau 阅读(9230) 评论(1) 推荐(1) 编辑
摘要: 本文部分图片转自: "https://blog.csdn.net/lgaojiantong/article/details/39451243" 目录 1. 自定义插值器 2. 系统插值器 1. 自定义插值器 要自定义插值器,首先得看看系统的插值器是怎么写的。这里从最简单的LinearInterpol 阅读全文
posted @ 2018-06-15 14:17 jyau 阅读(835) 评论(0) 推荐(0) 编辑
摘要: 1. UDP (1)访问网络必须添加权限,访问网络必须添加权限,访问网络必须添加权限,重要的事情说三遍。 (2)简述 UDP协议是面向报文的,简单地说,利用UDP访问网络的步骤就是“寄快递”:通过DatagramPacket(快件)把数据和地址打包,然后用DatagramSocket(你)进行数据报 阅读全文
posted @ 2018-03-11 22:30 jyau 阅读(848) 评论(0) 推荐(0) 编辑
摘要: 1. jar包下载 下载地址:http://ormlite.com/releases/,一般用core和android包即可。 如果使用的是android studio,也可以直接通过module settings加入依赖。 2. 实体类 使用OrmLite创建表不需要写任何SQL语句,而是通过创建 阅读全文
posted @ 2017-08-30 20:14 jyau 阅读(1241) 评论(0) 推荐(0) 编辑
摘要: 1. 简述 在实际开发中,常常需要进行不同应用程序之间的数据通信,例如读取联系人列表等等,ContentProvider就是Android提供的用于实现不同进程之间进行数据通信的类。 ContentProvider的作用是对外提供对本应用的数据进行“增删改查”的接口,而后在其它程序可通过Conten 阅读全文
posted @ 2017-08-27 17:18 jyau 阅读(1756) 评论(1) 推荐(0) 编辑
摘要: 1. 效果示例图 2. 创建方法 (1)第一种方法与ListView等普通控件一样,直接在布局文件中添加ExpandableListView控件即可。 (2)第二种方法则是创建一个Activity继承自ExpandableListActivity,而后通过getExpandableListView( 阅读全文
posted @ 2017-08-23 23:28 jyau 阅读(1633) 评论(0) 推荐(1) 编辑
摘要: 1. 泛型 AysncTask Params:启动任务时传入的参数,通过调用asyncTask.execute(param)方法传入。 Progress:后台任务执行的进度,若不用显示进度条,则不需要指定。 Result:后台任务结束时返回的结果。 2. 重要方法 doInBackground(Pa 阅读全文
posted @ 2017-08-11 11:23 jyau 阅读(2282) 评论(1) 推荐(1) 编辑
摘要: 1. 原理 每一个线程对应一个消息队列MessageQueue,实现线程之间的通信,可通过Handler对象将数据装进Message中,再将消息加入消息队列,而后线程会依次处理消息队列中的消息。 2. Message 初始化:一般使用Message.obtain()方法获取一个消息对象,该方法会检查 阅读全文
posted @ 2017-08-07 21:42 jyau 阅读(1395) 评论(0) 推荐(0) 编辑
摘要: 1. 实例化URL对象 首先第一步实例化一个URL对象,传入参数为请求的数据的网址。 URL url = new URL("http://www.imooc.com/api/teacher?type=3&cid=1"); 2. 获取HttpURLConnection对象 调用URL对象的openCo 阅读全文
posted @ 2017-08-05 14:47 jyau 阅读(3627) 评论(0) 推荐(0) 编辑
摘要: 1. 案例简述 这个案例实现一个简单的坦克对战游戏,两个玩家在一个地图上PK。 2. 控制坦克移动 与案例一中小球的移动方式不同,坦克在横向上不能是平移,因此横向按键控制的应该是坦克旋转。 public float speed = 5;//前进速度 public float angularSpeed 阅读全文
posted @ 2017-06-04 00:07 jyau 阅读(7218) 评论(1) 推荐(0) 编辑