1.Expanded组件 占满可用空间 -----可以到达类似flex布局中  第一列占用大量空间,所以它必须包装在Expanded widget中。

写死的高度改成Expanded自动撑满屏幕如果还是不能撑满试试加上flex:1的属性

Expanded expands its child to fill the available space
--Using an Expanded widget makes a child of a Row, Column, or Flex expand to fill the available space in the main axis (e.g., horizontally for a Row or vertically for a Column). If multiple children are expanded, the available space is divided among them according to the flex factor. 

2.如何改变text组件的高度:可以直接给height (单位感觉像字体单位)或者外面包一个容器

3.Text组件中文本居中 textAlign: TextAlign.center,

4.Container如果不设置宽度 宽度则由内容撑起了 背景色设置 color: Colors.pink,
无法设置背景色的组件 可以给他包一个Container容器再设置
边框属于修饰的属性需要在decoration中定义
5.使用Stack来组织需要重叠的widget。widget可以完全或部分重叠底部widget。类似于css中的

6.DefaultTextStyle.merge可以允许您创建一个默认的文本样式,该样式会被其
     // 所有的子节点继承

7.什么是无状态组件、有状态组件?

1)如果用户与widget交互,widget会发生变化,那么它就是有状态的.----
stateless widget 没有内部状态. Icon、 IconButton, 和Text 都是无状态widget, 他们都是 StatelessWidget的子类。
它不依赖于除了传入的数据以外任何其他数据,意味着改变传入其构造函数的参数是改变其显示的唯一方式

2)stateful widget 是动态的. 用户可以和其交互

如果动态组件中的变量有变化请外面套一个setState(() { _favoriteCount -= 1; }

------>无状态组件类似react中的纯组件

无状态组件里面child居然可以有状态组件。。。。。widget管理自己的状态时

8.flutter传递参数到子组件时,参数要给类型,只传值会提示少参数类型Too many positional arguments: 0 expected, but 1 found.

9.Future类型的函数类似于js中的promise 返回值可以使用then

10.拿到后台接口的数据后如果像js中通过遍历、属性访问等方式使用数据

方法1:as List).cast();

方法2:建立数据模型

var data=json.decode(data.toString());
List<Map> swiperDataList = (data['data']['slides'] as List).cast(); // 顶部轮播组件数 var data = json.decode(val.toString());
1 list = (data['data'] as List).cast(); //cast方式 访问字段属性是使用中括号 item['presentPrice'] model.formJson方式使用点符号 item.presentPrice ------->2中属性访问一种不行,就换一种
2 GoodsListModel goodsList = GoodsListModel.fromJson(data);

11.dart中map----->js中的对象{},dart中list---->js中的数组  [{},{},{}] : list中的map

12.动态创建一个List<Widget>
 
             children: str.split("")
                 //每一个字母都用一个Text显示,字体为原来的两倍
                 .map((c) => Text(c, textScaleFactor: 2.0,))
                 .toList(),

13.dart中 变量设置默认值

?. 运算符在左边为null的情况下会阻断右边的调用,?? 运算符主要作用是在左侧表达式为null时为其设置默认值。

child: Text(text ?? '加载中...')),


14.反序列化(json字符串->对象)

1)、什么是序列化?为什么要序列化?

Java中 序列化就是指将对象转换为字节序列的过程,而反序列化则是只将字节序列转换成目标对象的过程。

15使用dart:ui包里的window中的方法来获取屏幕宽高,它不受context限制,其实,MediaQuery的源码就会发现其获取屏幕宽高,最终还是调用的window方法中的方法的

16.UI提供的颜色值如何快速在flutter使用 16进制颜色#2D4ED1
#2D4ED1 ------>Color(0xff2D4ED1),

17.itemBuilder一般都有根据一个固定模板产生一系列子元素

18.StatefulWidget 组件接受参数xxx的时候需要加前缀 widget  widget.xxx

19.ListView 作为整个页面的根节点的唯一子元素时,可以不加高度,但是如果有兄弟元素时,必须加高度,否则界面无效

20.TextField 的prefixIcon图标宽度最小值小到一定长度,就不会再小了,通过包一个Padding或者Container组件使用padding属性挤小图标尺寸

21.Row组件子元素2端对其: mainAxisAlignment:MainAxisAlignment.spaceBetween,

22.去掉AppBar下面的阴影elevation: 0,  appBar: AppBar(title: Text('登录页面',style: TextStyle(color: Colors.white),),elevation: 0,),

23.Container设置最小宽度constraints : ---场景:有撑满屏幕的背景图的容器中放2个输入框,容器高度由子元素撑起,但高度太小导致背景图显示不完整,
     Container(
                   constraints: BoxConstraints(minHeight: 800),

24.Expanded(撑满空间)不能放在SingleChildScrollView(空间不够滚动)里面会报错

开发、调试、环境、资源类

1.只有在调试模式下写代码时,当ctrl+s才会编译。cmd窗口模式下flutter run运行项目时,需要切换到cmd按R/r才可以重新编译预览界面没有变化,或者命令行不返回print 输入R刷新一下

2.安装包的时候 需要在dependencies:字段下配置  dio: ^2.0.7 然后直接保存

3.print的内容如果前面有字符串需要toString一下 如print('--------------------------》'+ result);但是直接print(result);却可以 ---->原因可能是dart不支持字符串拼接只支持字符串模板?

4.ContentType.parse("application/x-www-form-urlencoded"); ContentType无效 解决办法----->import 'dart:io';

5.android studio 快捷键
如果Ctrl+z 掉的内容,又反悔了,快捷键为:Ctrl + Shift + z
ctrl+D 向下复制一行
shift+F6 重命名

6.win10 android studio 代码提示选择属性时卡死

Settings -->Editor -->General--> Code Completion 中去掉勾选的show the completion popup in 1000ms选项

flutter 学习零碎知识点01的更多相关文章

  1. Lua学习----零碎知识点

    Jit(just in time) 动态即时编译,边运行时边编译---->lua (主要是面向进程) Aot(ahead of time) 静态提前编译,运行前编译---->C#(主要是面 ...

  2. flutter全栈开发学习资料大全 免费flutter学习视频 文字教程!

    flutter今年特别火,google推出flutter就是为了一次开发全平台应用,包括PC端,手机wap端,android,ios直接生成APP应用,如果真的能像谷歌说的,那我们开发人员就真的好好学 ...

  3. Flutter学习笔记(36)--常用内置动画

    如需转载,请注明出处:Flutter学习笔记(36)--常用内置动画 Flutter给我们提供了很多而且很好用的内置动画,这些动画仅仅需要简单的几行代码就可以实现一些不错的效果,Flutter的动画分 ...

  4. webdriver零碎知识点

    #零碎知识点,用于记录平时遇到的比较杂的知识点 driver.current_url 获取当前url phantomjs 实现无浏览器界面自动化测试(driver = webdriver.Phanto ...

  5. Flutter 学习资料

    Flutter 学习资料: 学习资料 网址 Flutter 中文网 https://flutterchina.club/ <Flutter实战>电子书 https://book.flutt ...

  6. Flutter学习笔记与整合

    1.Dart 面向对象语言,与java类比学习 非常适合移动和Web应用程序 1.dart官网 2.Dark2 中文文档 3.Dart语法学习 4.极客学院Dart学习 5.Flutter与Dart ...

  7. Flutter学习指南:UI布局和控件

    Flutter学习指南:UI布局和控件 - IT程序猿  https://www.itcodemonkey.com/article/11041.html

  8. Android零碎知识点 1

    Android零碎知识点 1   Android在2.3版本上开始支持KeyEvent.KEYCODE_PAGE_DOWN以及KeyEvent.KEYCODE_PAGE_UP的操作.   Androi ...

  9. Flutter学习笔记(3)--Dart变量与基本数据类型

    一.变量 在Dart里面,变量的声明使用var.Object或Dynamic关键字,如下所示: var name = ‘张三’: 在Dart语言里一切皆为对象,所以如果没有将变量初始化,那么它的默认值 ...

随机推荐

  1. Tomcat zabbix监控、jmx监控、zabbix_java_gateway

    几种方式监控tomcat,如标题. 下面就是参考的网上的连接.自己可以试一下. 由于牵扯到jvm的很多东西, 在这里就只是粘贴处连接参考. http://www.cnblogs.com/chrisDu ...

  2. Lua中的一些库(1)

    [数学库] 数学库(math)由一组标准的数学函数构成.这里主要介绍几个常用的函数,其它的大家可以自行百度解决. 三角函数(sin,cos,tan……)所有的三角函数都使用弧度单位,可以用函数deg( ...

  3. select2 api参数的文档

    具体参数可以参考一下: 参数 类型 描述 Width 字符串 控制 宽度 样式属性的Select2容器div minimumInputLength int 最小数量的字符 maximumInputLe ...

  4. 前端开发-1React-1概述

    React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设Instagram 的网站.做出来以后,发现这套东西很 ...

  5. c# 向数据库插数据超过1000条

    今天想着如何大批量插入数据到数据库中  最开始的想法是使用insert循环插入 但每次都要创建数据库连接 这是非常消耗时间和消耗资源的事.后在网上看到了说使用SqlBulkCopy ,就看了看文档和别 ...

  6. nginx+vsftp图片下载java代码上传

    系统环境:阿里云centos7.3 安装nginx 查看nginx进程 ps aux|grep nginx 在/usr/local/nginx/sbin/目录下 nginx启动 ./nginx 快速停 ...

  7. 【CF765F】Souvenirs 主席树

    [CF765F]Souvenirs 题意:给你一个长度为n的序列{ai},有m个询问,每次询问给出l,r,问在所有$l\le x < y\le r$中,$|a_x-a_y|$的最小值是多少. $ ...

  8. SpringCloud教程 | 第四篇:断路器(Hystrix)

    在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以相互调用(RPC),在Spring Cloud可以用RestTemplate+Ribbon和Feign来调用.为了保证其高可用,单个服务 ...

  9. css 制作菜单

    代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...

  10. vue_条件渲染_v-if_v-else_v-show

    data: { ok: true flag: false } 1. 成对出现的 v-if 和 v-else 原理是: 标签的删除与重新创建 ,有些情况必须用 v-if <p v-if=" ...