• 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选项

  • 相关阅读:
    聊聊 归一化和标准化
    感觉对自己比较有意义的文章收录
    Quartz.Net 使用心得(一)
    Quartz.Net 使用心得(二)
    HttpClient异步请求Post传递Json
    今天我也用上了阿里云的Centos
    WebApi传参总动员(一)
    半监督学习
    特征选择
    深度学习图像分割——Unet网络
  • 原文地址:https://www.cnblogs.com/ruoqiang/p/10619813.html
Copyright © 2020-2023  润新知