自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

菜鸟博客

不积跬步无以至千里

原创 Flutter之Widget构建过程详解

知识储备: Flutter之BuilderContext和Widget关系浅析 Fultter之Element和Widget对应关系解析 今天来详细谈谈Flutter的Element,了解了Element,Flutter的一些概念和框架就是“程序员头上的虱子,一眼看透了”(这他娘的什么比喻),话不...

2019-11-09 22:27:45 1427 4

原创 Flutter之GlobalKey详解

博主打算通过登录功能来总结一下Flutter的相关知识点。为什么选择登陆功能呢?因为登录功能逻辑简单,很好抽象,功能也很普遍,这也是博主以此为突破口写android MVC和MVP探讨的原因。本系列应该不长,初步估计也就三篇左右,通过层层递进,慢慢地会勾勒出一个完整的登陆功能的demo,demo的...

2019-11-02 14:00:40 8781 9

原创 Flutter之Widget更新机制简单分析

本篇博客将要分析Widget的更新机制,在阅读这篇文章之前建议读者阅读Fultter之Element和Widget对应关系解析, 从Element和Widget对应关系这篇博文中可以知道有如下的表关系: ...

2019-03-25 14:36:05 1916 0

原创 从源码角度分析android事件分发处理机制

正式开始之前的准备工作: 之前也写过一篇《android事件拦截处理机制详解》的博客,通过博客的名字也可以知道那篇博客只是分析了android控件View对事件的拦截和处理,简单的总结如下: 1)父View优先拦截当前事件,拦截不成功就让子View对当前事件进行拦截。 2)如果拦截成功...

2015-12-08 12:18:12 5505 7

原创 android事件拦截处理机制详解

android 事件拦截处理机制详解

2014-11-13 19:43:33 44232 35

原创 Android WebView监听console错误信息

根据需求,我们要拿到h5的错误信息,并将error信息进行上报。查询了下Android WebView的API发现了WebChromeClient这个方法可以满足要求: @Override public boolean onConsoleMessage(ConsoleMessage conso...

2020-12-02 16:28:16 0

原创 设计模式之builder模式

该模式也是常见的一种设计模式,在常用的

2020-12-01 10:48:59 125 7

原创 git 提交代码的好习惯

好久没写博客了,不能偷懒,在此记录下自己git提交代码的的一些规范化步骤和命令: 1、git status 2、git diff 3、git stash save “贮藏起自己的改动,防止丢失“ 4、git checkout master 5、git pull origin master ( or...

2020-11-24 08:43:50 23 0

原创 Flutter BuildOwner之inactive Elements浅析

通过Flutter BuildOwner之dirty elements简析一文,我们知道BuildOwner里面又两个集合:一个是drity elements集合,主要负责对dirty状态的Element进行重新构建。另外一个集合就是本文的主角inactive Elements。inactive意...

2020-10-24 00:03:22 84 0

原创 Flutter BuildOwner之dirty elements简析

BuildOwner在Flutter起到了举足轻重的作用,本篇博文就来分析它! 阅读本片博文之前,需要提前知道如下知识: Flutter之Binding简单梳理 Flutter之Widget构建过程详解 Fultter之Element和Widget对应关系解析 从设计上来讲,Flutter在整个a...

2020-10-21 14:37:25 72 0

原创 Flutter BindingBase服务扩展浅析

本篇博文涉及到的名字Service Extension在此博主直译为服务扩展。 假设你已经读过博主的如下两篇文章:Flutter之Binding简单梳理和Flutter之SemanticsBinding和WidgetsBindingObserver简析。BindingBase,顾名思义是Flutt...

2020-10-12 13:38:48 185 0

原创 Flutter之SemanticsBinding和WidgetsBindingObserver简析

根据Flutter之Binding简单梳理得知,Flutter在runApp方法运行的时候会初始化一系列Binding,而SemanticsBinding就是其中之一。本篇博文就简单熟悉下SemanticsBinding这个Binding的作用。 mixin SemanticsBinding on...

2020-09-25 14:46:22 344 0

原创 Flutter之Binding简单梳理

阅读本片博文的时候,博主假设你已经对Dart的mixin语法有所了解。本篇博文BindingBase的执行流程做一个简单的梳理,方便以后阅读Flutter其他源码。我们知道Flutter是通过如下代码运行的: void main() { runApp(MyApp()); } void run...

2020-09-16 11:14:41 227 0

原创 Flutter之_slot属性简析

阅读本博客的前提是博主假设已经了解Element和Widget的关系,以及Widget的基本构建过程。如果不了解可以先阅读博主的:Flutter之Widget构建过程详解。本文主要分析下Element中的一个_slot属性,明白了这个属性的作用,后面在分析其他源码的时候就有所帮助。 abstra...

2020-09-02 15:14:42 136 0

原创 力扣之好数对的数目

该题是力扣上面的一道难度为简单的题,虽然难度标志为简单,但是看了大家的解法确实能学到一点东西,下面就来分析分析这道题(原题传送门),题目如下: 给你一个整数数组 nums 。 如果一组数字 (i,j) 满足 nums[i] == nums[j] 且 i < j ,就可以认为这是一组 好数对 ...

2020-08-28 10:51:28 128 1

原创 Flutter之Visibility简单说明

在Android中隐藏或者显示一个View很容易,直接通过view的setVisibility()方法来控制即可。对于Flutter来说则提供了一个Visibility控件来控制一个Widget的展示和隐藏。Visibility的控制粒度相比于Android来说更细,本篇博文就来简单说明下这个控件...

2020-08-21 10:14:45 477 0

原创 LinearLayout removeAllViews后再 addView页面不展示

博主今天使用SmartRefreshLayout+ScrollView +ViewPager+Fragment的时候遇到了一个问题,下图是实现的效果: 上图每个Tab对应的页面都是一个Fragment,此时页面定位到首页这个tab,首页Fragment的布局很简单:就是一个LinearLayou...

2020-08-10 17:17:52 462 0

原创 Android studio 4.0 Layout Inspector查看当前Activity

在使用Android studio的时候博主很喜欢使用Layout Inspector功能来查看当前的Activity。这样对于熟悉新项目来说特别有用。但是升级了4.0版本之后发现每次点击Layout Inpsector都是直接显示布局结构了,并没有熟悉的Activity选择框,然后博主一番寻找找...

2020-07-31 17:16:10 1158 0

原创 Mac配置adb笔记

第一次使用Mac,做一个关于adb 配置的简单的笔记 步骤如下: 1、sudo vim ~/.bash_profile,打开 .bash_profile文件。 2、按i进入输入模式,在文件内容的末尾加入以下内容: export ANDROID_HOME=/Users/userName/Librar...

2020-07-01 16:23:13 249 1

原创 Flutter之路由系列之Navigator简析
原力计划

博主的博客Flutter之路由系列之LocalHistoryRoute简单的梳理下Flutter的路由机制,其中Navigator扮演者重要的角色。本篇博文就简单梳理下Navigator的相关知识点。闲言少叙,开始发车。 通过本篇博客你可以了解到: 1、MaterialApp内置了一个Naviga...

2020-06-11 11:41:11 294 0

原创 Flutter之路由系列之Route
原力计划

Flutter提供了强大的路由管理功能,在这里就来梳理下Route的相关知识点。先来直观的看下Route的家族成员: 1、Route的install逻辑 咱们先来简单分析下Route,下来看看源码: abstract class Route<T> { RouteSetti...

2020-06-04 17:12:58 395 0

原创 Flutter之BottomSheet
原力计划

在Flutter之SnackBar原理详解详细的介绍了SnackBar的使用极其原理,SnackBar主要功能是提供了一个简单的消息,虽然跟用户有一定的交互。但是其目的主要是提示性消息。且会自动消失。除了SnackBar之外,Flutter又提供了一个BottomSheet,该组件可以在屏幕底部展...

2020-05-29 14:53:52 530 0

原创 Flutter之SnackBar原理详解
原力计划

初次学习SnackBar控件,第一反应就是这货怎么感觉跟Android的Toast一样!使用起来确实简单 Snackbar的作用就是在屏幕的底部展示一个简短的消息,与此同时,Snackbar也可以与用户进行交互,实现效果如下图: 如上图所示SnackBar分成两个部分:内容区域(content)...

2020-05-28 11:18:03 326 0

原创 Flutter之SafeArea

博主相关资料: Flutter之MediaQuery 本篇博文比较简单,用四张图来对比说明下SafeArea的作用! 1、未使用SafeArea的代码: Widget build(BuildContext context) { return Container( color: Co...

2020-05-25 14:20:26 528 0

原创 设计模式之单例模式浅谈

面向对象的世界里,在一个系统或者应用的生命周期中,总会伴随着对象的大量创建和销毁。有的对象生命周期很短,如昙花一现;有的生命周期却很长,跟电视剧的主角一样可以活到最后一集。具有主角光环的这个对象就是单例对象。 单例模式的目的就是确保在系统或应用的生命周期中,一个类Class只有一个实例对象存在。 ...

2020-05-20 13:58:55 169 0

原创 Flutter动画系列之SizeTransition

SizeTransition为尺寸控制动画,其内部核心原理是其child外面包裹着一个Align,然后利用Align的widthFactor和heightFactor的性质,动态的改变父组件的大小,注意是父组件,不是子组件。Flutter之Align和AlignmentGeometry ...

2020-05-14 13:35:08 594 0

原创 Flutter之MediaQuery
原力计划

在学习Flutter的时候时不时会看到这个控件的使用,一直对该组件一知半解。本篇博文就梳理下相关知识点。 MediaQuery从源码上看是一个简单不过的Widget: class MediaQuery extends InheritedWidget { /// Creates a widget...

2020-05-01 21:22:16 579 0

原创 Flutter之RenderObjectWidget
原力计划

与本篇博文有关的参考资料: Flutter之ParentDataWidget Flutter之Widget构建过程详解 Fultter之Element和Widget对应关系解析 Flutter之BuilderContext和Widget关系浅析 在Flutter之ParentDataWidget一...

2020-04-27 09:10:07 482 0

原创 Flutter之ParentDataWidget
原力计划

Flutter除了StatelessWidget,StatelessWidget之外还有一类Widget,也就是ProxyWidget: 如上图所示ProxyWidget有两个直接子类:InheritedWidget和本篇博文的主角ParentDataWidget. ProxyWidget是什么...

2020-04-26 08:56:09 4090 0

原创 Flutter之EdgeInsetsGeometry简析

没时间解释了,先来一段代码: Container( width: 200, height: 200, color:Colors.red, padding: EdgeInsets.all(10), child: Cont...

2020-04-17 16:20:08 1131 0

原创 Flutter之ScrollView简析

ScrollView是一个抽象类,其具体的子类如下图所示: 本篇博文不会过多深入到ScrollView的细节里面,就简单的梳理下其布局流程。既然是有个抽象类,其提供了一个抽象方法: List<Widget> buildSlivers(BuildContext context); 该方...

2020-04-13 09:34:33 908 0

原创 Flutter之GridView简析
原力计划

博主很久之前的这篇文章《Flutter实战之顶部导航栏以及ListView简单应用》简单的写了下ListView的应用,ListView属于Flutter的ScrollView。本篇博文就来简单解析下ScrollView.先来看看ScrollView的结构: 本文主要讲下GridView ...

2020-04-08 17:19:56 292 0

原创 Flutter PageView简析

Flutter中的PageView有点类似于Android中的ViewPager,但是PageView提供了额外的配置,比如PageView既可以支持横向翻页也可以支持竖直翻页。今天就来简单的解析下这个控件。 PageView可以通过三种方式来创建: 1、通过构造器创建 2、通过PageView....

2020-03-30 17:42:46 1450 0

原创 Flutter之Positioned

关于该控件官方注释有这么一句: A [Positioned] widget must be a descendant of a [Stack],A widget that controls where a child of a [Stack] is positioned,意思是一个Position...

2020-03-19 15:48:26 892 1

原创 Flutter之Stack

博主初次接触Stack的时候,第一个感觉就是这玩意不就是跟Android的FrameLayout的效果一样的吗。都可以实现UI的叠加效果。在此简单的分析下这个控件,算是一个简单的学习笔记。 看看官方demo给的效果: 实现代码如下,简单的实现了红绿蓝三个色块的叠加 child: Stack( ...

2020-03-17 15:50:34 280 0

原创 Flutter之Align和AlignmentGeometry

Align是这么一个组件,它可以调整子组件的位置,并且根据子组件的宽和高来确定自身的宽和高! Align对象提供了一个alignment,用来控制子组件在父组件的位置。比如左上角,右上角,左下角,右下角等等。如果不设置的话,默认子组件相对于父组件居中展示。 Container( ...

2020-03-11 11:30:18 603 0

原创 Flutter之Container 简单分析

Container是一个组合类容器,其设计思路遵循着组合优先于继承原则,它本身是一个StatelessWidget,Container组件持有一个child控件,它的build方法返回的widge是对child控件的包装组合之后的结果。 比如child组件通过可能通过Padding,Decorat...

2020-03-10 15:37:37 256 0

原创 FlutterDialog的应用

Flutter 提供了几个Dialog弹框,在这里简单的分析下Dialog,AlertDialog,SimpleDialog如下表所示: 名称 Widget类型 说明 Dialog StatelessWidget 最基本的Dialog类型,里面包含一个child Widget;官方...

2020-01-07 17:38:52 1000 0

原创 Flutter实战之AS快键键

Flutter开发中熟练掌握Android Studio的快捷键

2020-01-03 17:09:22 802 0

原创 Flutter实战之Builder和StatefulBuilder

考资料: Flutter之BuilderContext和Widget关系浅析 Flutter之Widget更新机制简单分析 Fultter之Element和Widget对应关系解析 Flutter之实战InheritedWidget详解 Widget _createButton() { ...

2020-01-01 10:28:54 2030 0

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