logo头像

我有一个梦想

flutter学习笔记

本文于 1648 天之前发表,文中内容可能已经过时。

编程库

  • intl: “>=0.14.0” //国际化、日期格式化
  • url_launcher: ^4.0.1 //用于在移动平台中启动URL的Flutter插件
  • fluro // Flutter最亮,最时髦,最酷的路由器
  • event_bus //使用Dart Streams 进行解耦应用程序的简单事件总线

1.锁定手机的屏幕

不允许它随着用户旋转手机而改变

1
2
3
4
5
6
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);

SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp, //竖屏
DeviceOrientation.portraitDown, //横屏
]);

2. InheritedWidget类

小部件的基类,可以有效地在树中传播信息。
这允许子部件访问整个层次结构中的其他组件,而不需要传递这些引用。
具体使用Flutter知识点: InheritedWidget

定位为父组件,其中可以自定义方法和属性,每个子类新建一个父组件类,调用父类的方法实现刷新widget数据,这样包括父控件及其所有子控件都能实时获取到当前改变的值

3. Dart语法

  • 使用?.来确认前操作数不为空, 常用来替代. , 避免左边操作数为null引发异常
  • ??=== 如果为空

4.Listview问题记录

  • listview需要添加父布局,flex;1做到全屏拉伸,才会显示
  • Expanded下的listview无法置顶,需要设置padding:EdgeInsets.only(top: 0)

5.image的填充属性

  • fit

    image的填充属性

6.colum中的显示Text文本溢出时设置父布局为Expanded

7.(_)=> const MyHomePage(); _的意思是不关心入参的信息

8.build之后的回调

1
2
//在build函数中添加
WidgetsBinding.instance.addPostFrameCallback(xxx)