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 创建项目、运行项目、项目目录

创建项目

  1. 打开vscode
    在这里插入图片描述
    输入 flutter 选择 New Project
    在这里插入图片描述
    在这里插入图片描述
    选择一个用于在里头创建项目的文件夹
    在这里插入图片描述
    给项目取个名字(不要用大写),按回车即可。
    在这里插入图片描述
    稍等一会,项目便会创建成功,输出下方内容,表示创建成功!
    在这里插入图片描述

运行项目

启动模拟器

点击右下角的 No Device
在这里插入图片描述
选择搭建开发环境时,已创建好的模拟器
在这里插入图片描述
在这里插入图片描述
若屏幕如上图,则模拟器未开机,点击开机即可
在这里插入图片描述

调试项目(热加载)

方便修改代码时,一旦保存便可实时看到修改效果
在这里插入图片描述
在这里插入图片描述

打包安装项目

在终端输入命令

注意路径是项目路径下,若不是,则通过 cd 命令切换

flutter run

此时会打包 Build 一个apk,安装到模拟器中,即便关闭vscode,依然能在模拟器中像使用其他安装在模拟器里的APP一样自由使用。(不具备热加载的效果)
在这里插入图片描述
在这里插入图片描述

项目目录

在这里插入图片描述

  • android文件夹:存放Flutter与Android原生交互的代码,该文件夹下的文件和单独创建的Android项目基本一样。
  • ios文件夹:对于标准的iOS项目,存放Flutter与iOS原生交互的代码。
  • lib文件夹:Flutter的核心目录,存放的是使用Dart语言编写的代码。不管是Android平台,还是iOS平台,安装、配置开发环境后,都可以在对应的设备或模拟器上面运行这里的Dart代码,而整个应用的入口是lib文件夹下的main.dart文件。也可以在这个lib文件夹下面创建不同的文件夹,里面存放了不同的文件来管理日益壮大的应用。
  • test文件夹:存放Flutter的测试代码。
  • pubspec.yaml文件是项目的配置文件,可以在该文件中声明项目中使用到的依赖库、环境版本以及资源文件等。

以下是对默认应用–计数器 代码的解析,了解即可,看不懂没关系,后续学习慢慢就理解了。

lib\main.dart

// 导入 material UI 库
import 'package:flutter/material.dart';

// 项目启动函数—— main 函数
void main() => runApp(MyApp());

class MyApp extends StatelessWidget {

  // 重写StatelessWidget的build()方法,返回一个组件对象
  @override
  Widget build(BuildContext context) {
    /*
    * MaterialApp表明应用采用Material Design风格,
    * 可以在theme属性下配置应用中与主题相关的属性,如颜色、按钮风格
    * */
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  // 构造函数,用于接受调用者的参数
  MyHomePage({Key key, this.title}) : super(key: key);

  // 声明了一个字符串类型的final变量,并在构造函数中初始化
  final String title;

  /*
  * 所有继承自StatefulWidget的组件都要重写createState() 方法,
  * 用于指定该页面的状态是由谁来控制的。
  * 在Dart中,以下划线开头的变量和方法的默认访问权限就是私有的,
  * 类似于Java中用private关键字修饰的变量和方法,只能在类的内部访问
  */
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

/*
* State是一个状态对象,<> 里面表示该状态是与谁绑定的。
* 在修改状态时,在该类中进行编写
*/
class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  // 实现计数值加1的函数
  void _incrementCounter() {
    // setState方法用于更新属性
    setState(() {
      _counter++;
    });
  }

  @override
  Widget build(BuildContext context) {
    /* 
    * Scaffold是一个Material Design风格的组件,
    * 它继承自StatefulWidget,包含appBar、body、drawer等属性
    * */
    return Scaffold(
      /* 顶部导航栏 */
      appBar: AppBar(
        /*
        * 这里的Widget其实就是MyHomePage,
        * 它在这里调用了上面传递过来的title变量
        */
        title: Text(widget.title),
      ),
     // Scaffold中的主体布局
      body: Center(
        /*
        * 在Center组件中有一个child属性,用来定义它的子组件Column,
        * Column表示以行的形式显示其子组件
        */
        child: Column(
          /*
          * mainAxisAlignment用来控制子组件的对齐方式,
          * 也可以把值设置为start、end等
          */
          mainAxisAlignment: MainAxisAlignment.center,
           /* 
           * Column组件的children属性用于指定它的子组件,
           * 它接受一个数组,可以向该属性传递多个组件
           */
          children: <Widget>[
            // Text组件,用于显示文本
            Text(
              'You have pushed the button this many times:',
            ),
            // Text组件,使用style属性来设置它的样式
            Text(
              '$_counter',
              style: Theme.of(context).textTheme.display1,
            ),
          ],
        ),
      ),
      /*
      * FloatingActionButton也是Material Design风格的组件,
      * 可以在onPressed属性中定义其单击事件
      */
      floatingActionButton: FloatingActionButton(
        // 通过单击触发_incrementCounter函数
        onPressed: _incrementCounter,
        tooltip: 'Increment',
        // 指定child的子组件为一个“+”号图标
        child: Icon(Icons.add),
      ),
    );
  }
}
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-04-29 12:16:33  更:2022-04-29 12:17:31 
 
开发: 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年11日历 -2024/11/24 23:44:18-

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