08 2020 档案
摘要:首先要引用event_bus.dart文件 初始化EventBus全局对象 生成一个event类,也可以用父类event来传递 在需要监听总线的页面添加监视器,类型是StreamSubscription,可以指定监听的event类型,不符合的event不会被监听到 发送事件可以用EventBus.f
阅读全文
摘要:column和row的children属性可以使用匿名函数来添加。可以省去大量重复代码: Column( mainAxisAlignment: MainAxisAlignment.center, children: (){ var p = List<Widget>(); for(int i=0; i
阅读全文
摘要:今天研究了一下git的rebase rebase中文“变基” ,改变基础(挂载点)的意思 最基本的rebase xxx分支: 目前有两个分支:master主分支和newbranch分支。现在位于newbranch上面,log图: 运行:git rebase master 可以看到,该rebase命令
阅读全文
摘要:flutter三大金刚:widget/Element/RenderObject 一个完整的idget工作流程: 1.widget被加载时,创建出widget对应的element对象 2.element通过rederobject实现绘制(实际看到的是renderobject绘制的画面) ⚠️:flut
阅读全文
摘要:futureBuilder和StreamSBuilder可以用来异步更新UI,比如我们需要请求一个server的数据,可以使用这两者来实现。 当然用StatefulWidget肯定也可以做,但这两个组件使得代码量更少,更精简。 futureBuilder源码: class FutureBuilder
阅读全文
摘要:Notification源码: abstract class Notification { /// Abstract const constructor. This constructor enables subclasses to provide /// const constructors so
阅读全文
摘要:下面代码有三个button,内容都是一样的,只不过包装方式不同。 第一个是没有包装的,第二个用Builder包了一层,第三个封装成了StatelessWidget。 运行一下,第一个button会报如下错误: 是说调用的Scaffod.of(context)找不到Scaffold。 import '
阅读全文
摘要:class _Drag extends StatefulWidget { @override _DragState createState() => new _DragState(); } class _DragState extends State<_Drag> with SingleTicker
阅读全文
摘要:absorbPointer开启absorbing:本身可以接收点击事件,但不会把事件传递给子组件。 ignorePointer开启ignoring:本身和子组件都不能接收点击事件。 import 'package:flutter/material.dart'; import 'package:flu
阅读全文
摘要:视频:https://www.youtube.com/watch?v=Zbm3hjPjQMk 可以通过继承InheritedWidget来使得当前widget的变化可被子widget感知;而且子Widget可以直接调用该Widget的某些数据,而如果不用InheritedWidget,就需要在从顶层
阅读全文
摘要:mixin是混入类, 一般在c++中利用abstract类来继承接口,但如果A类已经继承了某个abstract类,但还需要加另一个类里的方法怎么办? dart中可以利用with 关键字混入其它类的方法直接使用/对其进行覆写后再使用 例子,这个类继承了BDLifecycleState,并且混入了BDN
阅读全文
摘要:神秘代码:https://learngitbranching.js.org/?locale=zh_CN 流程图: 显然,git pull就相当于git fetch 再 merge到本地分支。 像我们平时工程用的source tree里面各按键对应的命令: 提交:commit 拉取:pull 推送:p
阅读全文
摘要:工程中经常会用到button的onTap或者onPressed方法,传进去的一般都是函数名字,比如:onTap: f, f可能的定义为:void f(int x,int y){//xxxxxx;} 按照之前写c++的经验,传递函数应该是用函数指针方法传递的,细节有点忘了,但参数/返回值都是一定指定
阅读全文
摘要:首先得明白下面2点: 全局变量的特点:常驻内存,污染全局变量 局部变量的特点:会被垃圾回收机制回收,不会污染作用域… // 闭包.dart void main(){ myClosure(){ var a = 0; // a是一个局部变量.函数执行完毕后将被清理 return (){ a++; pri
阅读全文
摘要:转载于https://www.jianshu.com/p/6346770649cc Switch 是一个切换按钮组件,通常用于设置的选项里。Switch 的原点颜色,横条颜色都可以设置,此外原点可以以图片形式显示。 new Switch( value: this.check, activeColor
阅读全文
摘要:限制尺寸 1.constrainedbox(constrains :一个boxconstrains,child) 其中boxconstraints的属性有minwidth/minheight/maxwidth/maxheight等 2.sizedbox(width, height, child)
阅读全文
摘要:这个方法可以从屏幕下方弹出一个对话框。 例子: showModalBottomSheet( context: context, isScrollControlled:false, backgroundColor: Colors.white, shape: RoundedRectangleBorder
阅读全文
摘要:一般会用到的dialog就是下面的showDialog函数。 使用方式一般就是:showDialog( 一个context,一个 builder), Future<T> showDialog<T>({ @required BuildContext context, bool barrierDismi
阅读全文
摘要:入职两周,写的第一个需求就是做几个简单的页面以及一些参数的传递,难度是不难的。但代码被同学们吐槽太长 太臃肿,比如下面这个样子: 几个页面一共写了1000多行,严格按照缩进来的(之前写c++写惯了,不缩进浑身难受) 然后模仿工程里别的同学写的代码,自己写了一个简单的测试页面。套路就是在build函数
阅读全文
摘要:1.在Flutter中,大多数东西都是widget(后同“组件”或“部件”),包括对齐(alignment)、填充(padding)和布局(layout)等,它们都是以widget的形式提供。 2. Flutter在构建页面时,会调用组件的build方法,widget的主要工作是提供一个build(
阅读全文
摘要:import几种方式: import 'package:flutter/material.dart'; 这种package后不是跟工程名字的,表示自定义的dart文件import 'package:xxx/xxx.dart'; 引入Pub仓库pub.dev(或者pub.flutter-io.cn)中
阅读全文
摘要:1. dart中is用来判断数据类型:int a=1; assert(a is num);//无报错 所以只要是is后面的类型的子类就行 然后相反的不是xx类型是用is!来判断,比如: int a=1; assert(a is! double); //无报错 as则是先判断是不是后面类型的子类,如果
阅读全文

浙公网安备 33010602011771号