IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Flutter学习笔记 -> 正文阅读

[移动开发]Flutter学习笔记

一、Flutter版本

1、本机版本

flutter --version
//Flutter 1.20.4 ? channel stable ? https://github.com/flutter/flutter.git
//Tools ? Dart 2.9.2

2、开源项目版本

environment:
  sdk: ">=2.12.0 <3.0.0"   //dart版本号
//dart2.12版本是null satety版本的开端,对应flutter2.0

3、升级flutter的sdk

flutter upgrade --force
//等待几分钟,开始下载,升级到最新版
flutter --version查看

二、项目

1、git clone

//重新配置本机的git
git clone http://.......
//配置项目和SDK镜像(如果还未配置)
//克隆下项目后,用vscode打开,会提示是否下载依赖包

2、vscode选择调试设备

//vscode右下角可以选择调试设备
//nexus 5X谷歌手机
//pixel 2 api 29谷歌手机

3、页面溢出(bottom overflowed)

点击输入框后弹出软键盘,提示溢出

// resizeToAvoidBottomInset
class _LoginViewState extends State<LoginView> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      resizeToAvoidBottomInset: false,
      appBar: getAppBar("Flutter Study"),
      body: Padding(
// SingleChildScrollView滚动组件,不支持基于Sliver的延迟实例化模式
class _HomeViewState extends State<HomeView> {
  @override
  Widget build(BuildContext context) {
    return SingleChildScrollView(
      child: Column(
        children: [
          ListTile(
// 使用支持Sliver延迟加载的可滚动组件,如ListView\GridView
// 如果预计视口可能包含超出屏幕尺寸太多的内容时使用SingleChildScrollView将会导致性能差的问题

4、static

使用 static 关键字实现类范围的变量和方法

A、静态变量

//静态变量
class han {
  static const empero = "刘备";
}
void main() {
  print(han.empero);
}

//如果不使用static?
class han {
  const empero = "刘备";//报错Only static fields can be declared as const
}

//提示使用final
class han {
  final empero = "刘备";
}
void main() {
  print(han.empero);//报错Instance member 'empero' can't be accessed using static 
}

//使用static的类的变量,不需要实例化类即可调用静态变量
class han {
  final empero = "刘备";
}
void main() {
  han A = new han();//实例化后正常调用
  print(A.empero);
}
//静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。
//非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。

总结一下:
(1)、类中定义const必须和static一起使用
(2)、静态变量在类被引用时初始化,非静态变量在类创建时初始化(性能?)
(3)、静态变量在类没有实例化时也可以被其他对象调用

B、静态方法

class han {
  static const empero = "刘备";
  static hana() {  //han构造函数不能使用static
    print(empero);
  }
}
void main() {
  han.hana();//正常打印刘备
}

静态方法没有this,不能访问类的非静态成员变量和非静态成员方法,因为非静态成员方法/变量都是必须依赖具体的对象才能够被调用。

class han {
  final empero = "刘备";
  static hana() {
    print(empero);//报错,不能调用非静态变量
  }
}
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-08-03 11:19:29  更:2021-08-03 11:21:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/5 18:38:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码