zoukankan      html  css  js  c++  java
  • Flutter随记

    1.Flutter SDK下载配置好环境变量后,在VSCode里安装dart和flutter两个插件后就可以创建项目了;

    2.创建项目可以用命令flutter create demo_01,则会自动创建demo_01项目目录(注意项目不要用demo-01而是用下划线)【可以加 --no-pub来不自动执行pub get】

    3.Flutter里布局是根据Widget类型来实现的,比如Scaffold是具有appBar和body和floatingActionButton等三个布局块(上下分列,最后的那个其实是一个floatting的一个控件)的一个Widget(在C#里叫Control/控件),

    而Center这种代表它内部只有一个布局块(但是是全局居中对齐)【只有一个布局块的内容属性一般都叫child】

    而像Row,Column之类的则有多个元素,因此表示内容的属性叫children(注意,Column是一列而非Columns多列,因此Column的子元素是在这一列里上下排列的)

    4.flutter创建项目还可以flutter create --no-pub --platforms=windows ft_demo01来创建指定目标源的项目;如果对这个项目需要增加目标源,可以执行flutter  devices查看本机flutter配置了哪些目标源,然后cd到项目根目录后通过flutter config --enable-linux-desktop来启用某个目标源(这里是Linux desktop,还有--enable-windows-desktop);注意启用了目标源需要重新创建一下项目,即再执行flutter create --no-pub .;然后手动执行 flutter  pub get --offline后就可以通过 flutter run -d windows来debug此目标源;还可以用flutter build windows(可以加--release)来build此目标源;

    5.shift+r可以热重启【r是热重载】【dart不行,要借助pub包】

    6.事件冒泡(包括前端)的意思是,比如有这种情况,一个Panel里面有个ListView,而Panel注册了双击左侧按钮事件(比如双击Panel会提示啥),而ListView的item也注册了双击事件;因此ListView的item这个组件是Panel的子孙组件,当双击item的时候事件被item先监听处理,如果不阻止冒泡,则会继续让Panel也处理这个双击事件;(还有典型的场景为外层是一个ScrollView,而内部子孙里也有ScrollView,因此对子孙Scroll时产生的事件如果不取消冒泡,则父Scroll也能收到,就会发生两个ScrollView一起动的情况)

    7.flutter里一个新的页面(路由页面)其实就是一个ConstrainedBox【expand()的】,因此对Container设置大小不生效;但是可以先用UnconstrainedBox包裹后,再用Container、SizedBox、ConstrainedBox等就有用了;【即如果父组件是ConstrainedBox,设置了最小长宽,则其子容器设置的大小如果小于父ConstrainedBox则以父ConstrainedBox为主(可以用UnconstrainedBox来取消父ConstrainedBox对子组件的影响,但是父ConstrainedBox大小是不受影响的);ConstrainedBox优先级大于SizedBox(也不能这么说,应该说这两个谁是父组件则谁的优先级更高)】【但是注意,ConstrainedBox和SizedBox对子元素的大小限制是基于子元素是单个控件组成的,比如各种容器,各种button(容器和button等是child);而如果子元素是Row这种的,则Row里的children元素是不会和ConstrainedBox等一样宽/高的】【或者这么讲,Row等默认外面就包有一层UnconstrainedBox】

    8.UnconstrainedBox对SizedBox也有取消作用

  • 相关阅读:
    Linux官方源、镜像源汇总
    python3 pip报错 TypeError: 'module' object is not callable
    2019-11-27:kali 2019-4中文乱码解决方法
    2019-11-26:密码学基础知识,csrf防御
    2019-11-25:信息收集,笔记
    2019-11-24:postgresql数据库安装,最后报错failed to load SQLModule 问题的解决方案
    2019-11-22:xss绕过笔记
    2019-11-20:xss学习笔记
    2019-11-19:无返回的盲型xxe,使用带外读取数据
    2019-11-19:xxe漏洞利用,笔记
  • 原文地址:https://www.cnblogs.com/silentdoer/p/14664323.html
Copyright © 2011-2022 走看看