flutter 学习零碎知识点01
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的更多相关文章
- Lua学习----零碎知识点
Jit(just in time) 动态即时编译,边运行时边编译---->lua (主要是面向进程) Aot(ahead of time) 静态提前编译,运行前编译---->C#(主要是面 ...
- flutter全栈开发学习资料大全 免费flutter学习视频 文字教程!
flutter今年特别火,google推出flutter就是为了一次开发全平台应用,包括PC端,手机wap端,android,ios直接生成APP应用,如果真的能像谷歌说的,那我们开发人员就真的好好学 ...
- Flutter学习笔记(36)--常用内置动画
如需转载,请注明出处:Flutter学习笔记(36)--常用内置动画 Flutter给我们提供了很多而且很好用的内置动画,这些动画仅仅需要简单的几行代码就可以实现一些不错的效果,Flutter的动画分 ...
- webdriver零碎知识点
#零碎知识点,用于记录平时遇到的比较杂的知识点 driver.current_url 获取当前url phantomjs 实现无浏览器界面自动化测试(driver = webdriver.Phanto ...
- Flutter 学习资料
Flutter 学习资料: 学习资料 网址 Flutter 中文网 https://flutterchina.club/ <Flutter实战>电子书 https://book.flutt ...
- Flutter学习笔记与整合
1.Dart 面向对象语言,与java类比学习 非常适合移动和Web应用程序 1.dart官网 2.Dark2 中文文档 3.Dart语法学习 4.极客学院Dart学习 5.Flutter与Dart ...
- Flutter学习指南:UI布局和控件
Flutter学习指南:UI布局和控件 - IT程序猿 https://www.itcodemonkey.com/article/11041.html
- Android零碎知识点 1
Android零碎知识点 1 Android在2.3版本上开始支持KeyEvent.KEYCODE_PAGE_DOWN以及KeyEvent.KEYCODE_PAGE_UP的操作. Androi ...
- Flutter学习笔记(3)--Dart变量与基本数据类型
一.变量 在Dart里面,变量的声明使用var.Object或Dynamic关键字,如下所示: var name = ‘张三’: 在Dart语言里一切皆为对象,所以如果没有将变量初始化,那么它的默认值 ...
随机推荐
- 从GitHub下载demo时遇到的依赖问题
从GitHub上使用download zip下载时,经常遇到一些依赖工程没有一起下载,如果额外手动下载,配置起来也相当费事,其实,标准的方法是使用以下命令下载这样的demo. git clone -- ...
- Codeforces 1120D Power Tree [最小生成树]
洛谷 Codeforces 这题怎么一个中文题解都没有,是不是你们都认为太水了-- 思路 显然可以用dfs序把每个节点变成给一个区间的叶子节点加上某个数. 显然把叶子序列差分一下变为\(a_1,a_2 ...
- extensible_index
create user ex identified by oracle; grant Resource to ex;grant connect to ex;grant create view to e ...
- 记账本-NABCD分析
N(Need)需求 这个软件主要解决了大学生管理自己财务状况的问题,随着手机支付的日趋流行大家对财务的概念就变成了银行卡账户余额的一串数字,在不知不觉中,这串数字就一变小,也就出现了月光族.由此看来, ...
- 论文阅读笔记四十四:RetinaNet:Focal Loss for Dense Object Detection(ICCV2017)
论文原址:https://arxiv.org/abs/1708.02002 github代码:https://github.com/fizyr/keras-retinanet 摘要 目前,具有较高准确 ...
- HTML目录:
HTML常用标签 CSS样式
- Cordova IOT Lesson002
hello index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"& ...
- Redis哈希表总结
本文及后续文章,Redis版本均是v3.2.8 在文章<Redis 数据结构之dict><Redis 数据结构之dict(2)>中,从代码层面做了简单理解.总感觉思路的不够条理 ...
- zTree 3-- jQuery 树插件笔记
地址:http://www.treejs.cn/v3/demo.php#_507 数据结构json,里可以自定义属性. var zNodes =[ { name:"父节点1 - 展开&quo ...
- Scala集合常用方法解析
Java 集合 : 数据的容器,可以在内部容纳数据 List : 有序,可重复的 Set : 无序,不可重复 Map : 无序,存储K-V键值对,key不可重复 scala 集合 : 可变集合( ...