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语言里一切皆为对象,所以如果没有将变量初始化,那么它的默认值 ...
随机推荐
- JMeter学习笔记01-安装环境
记录关于JMeter学习的内容.方便复习. 1)JMeter运行环境 因为JMeter是用纯java写的.所以运行的时候需要java的运行环境. 去java官网下载,点免费下载或所有Java下载都行, ...
- Re-enable extensions not coming from Chrome Web Store on Chrome v35+ (with enhanced security)
1. Add the --enable-easy-off-store-extension-install flag when you start chrome (create shortcut, ed ...
- Python 爬虫 NewCnblogs (爬虫-Django-数据分析)
需求分析 数据库架构 注册 登录 首页 个人站点 文章+评论 后台 爬虫 数据分析 添加搜索+已上线
- lombok @Getter @Setter 使用注意事项
lombok是一个帮助简化代码的工具,通过注解的形式例如@Setter @Getter,可以替代代码中的getter和setter方法,虽然eclipse自带的setter.getter代码生成也不需 ...
- sklearn.linear_model.LinearRegresion学习
sklearn线性模型之线性回归 查看官网 https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearR ...
- vue app混合开发蓝牙串口连接(报错java.io.IOException: read failed, socket might closed or timeout, read ret: -1;at android.bluetooth.BluetoothSocket.connect at js/BluetoothTool.js:329)
我使用的uni-app <template> <view class="bluetooth"> <!-- 发送数据 --> <view c ...
- 【python3 自动化基础之pip】pip常用命令归类
1.升级pippython -m pip install --upgrade pip(包名) 2.安装pymysql pip install pymysql 3.pip按照到指定目录 python - ...
- Canvas 画占比图 解决canvas锯齿 bug
案例如图: <section class=" chartWrap"> <div class="chartContent"> <di ...
- pip错误-failed to create process/fatal error in launcher
电脑同时装了python2和python3,并且都配置了环境变量 将python2的python.exe改成python2.exe,python3的python.exe没有改(主要用python2时则 ...
- rabbitmq-cluster搭建
一.前期准备: 准备3台linux系统,配置好公司源,或者官网下载相应的网络源 1.条件:准备3台linux系统,确保能连到download.yunwei.edu 2.编写yum源下载脚本: #vim ...