专注前端,专注网页设计分享 - (网页制作/模板制作/设计)755150799 织梦模板 | 网页特效 | 网站模板 | 建站教程 | Tag标签 | 联系站长
当前位置:首页 > APP开发

Flutter新手入门·第一天完整实操手册Windows+Android Studio

时间:2026-06-10 16:27:42来源:学技巧网站制作 作者:新建 阅读:0次 【 点评一下

Flutter新手入门·第一天完整实操手册(Windows+Android Studio,从打开软件→跑通第一个项目→看懂代码→手写第一行布局,全程超详细,适配你有HTML基础)

前置确认:你当前已装好的软件

  1. Android Studio(带Flutter插件、安卓SDK)
  2. Flutter环境解压并配置好系统环境变量
  3. Windows终端可以识别 flutter 命令

一、第一步:环境自检(必做,排查报错根源)

打开 Windows CMD终端 / PowerShell
输入命令:

flutter doctor

结果看懂方式:

  • 前面打 ✅ 绿色对勾 = 正常
  • 出现 ⚠️黄色感叹号、❌红色叉号 = 有问题,必须修复 常见问题:
  1. Android license 未同意:终端执行

flutter doctor --android-licenses

一路输入 y 回车确认 2. 模拟器没装、SDK版本缺失:回到Android Studio安装对应SDK平台

没把环境检查完,后面新建项目一定会运行失败,这是新手最容易卡半天的地方

二、第二步:用Android Studio新建第一个Flutter项目(图文式步骤)

  1. 打开 Android Studio
  2. 首页点击:New Flutter Project
  3. 左侧选择:Flutter Application → 点击 Next
  4. 填写项目信息:
  • Project name:flutter_demo01只能英文小写、不能中文、不能空格
  • Flutter SDK path:软件会自动识别你配置好的Flutter文件夹路径
  • Project location:自己选一个纯英文路径存放,路径全程不能出现中文(D盘新建文件夹 code_flutter 用来放所有项目)
  1. 点击 Next
  2. 下一页设置:
  • Application name:APP安装后手机上显示的名字,可填 简易测试Demo
  • Package name:包名(安卓唯一标识,格式 com.xxx.demo,新手默认不用改) 勾选 Android,iOS暂时不用管,点击 Finish
  1. 等待自动加载依赖(第一次新建会慢,下载gradle、pub依赖,耐心等待右下角进度条跑完)

三、界面认识(对照HTML理解,帮你快速转换思维)

左侧项目目录重点文件(只记现在要用的)

image

HTML:打开index.html就是页面 Flutter:程序固定从 main.dart 启动,所有页面代码都写在lib文件夹内

四、第三步:启动安卓模拟器,运行默认项目

1. 打开模拟器

Android Studio右上角,找到手机样式图标 Device Manager 点开

  • 已有模拟器:点击▶️启动
  • 无模拟器:点击Create device,随便选一款手机(推荐Pixel系列),下载安卓系统镜像,完成创建

2. 选择运行设备

右上角设备下拉框,选中你打开的模拟器

3. 运行项目

点击顶部 ▶️绿色三角运行按钮 等待编译完成,模拟器会弹出APP,显示一个计数器页面(默认Flutter模板) ✅ 能正常弹出APP,代表环境、项目全部搭建成功

五、第四步:逐行拆解 main.dart 默认代码(结合HTML对照讲解,核心入门)

打开 lib/main.dart,完整初始代码如下,我一行行翻译含义,你对照理解:

// 导入Flutter核心组件库(类似HTML引入css/js文件)
import 'package:flutter/material.dart';

// 程序入口主函数,固定写法:整个APP从这里启动(相当于HTML最外层)
void main() {
  runApp(const MyApp());
}

// 自定义APP根组件,对应整个网页<html>根标签
class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    // MaterialApp:安卓风格APP外层包裹框架
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(primarySwatch: Colors.blue),
      home: const MyHomePage(title: '首页演示'),
    );
  }
}

// 首页页面组件,对应<body>内部页面内容
class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});
  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  // 点击按钮执行的方法
  void _incrementCounter() {
    setState(() {
      _counter++;
    });
  }

  @override
  Widget build(BuildContext context) {
    // Scaffold:手机页面骨架,自带顶部导航栏AppBar,网页没有这个结构
    return Scaffold(
      appBar: AppBar(title: Text(widget.title)),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            const Text('点击按钮次数:'),
            Text('$_counter'),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        child: const Icon(Icons.add),
      ),
    );
  }
}


和HTML思维对照

  1. build() 方法:返回页面结构,等价于写HTML代码
  2. 所有页面元素(文字、盒子、按钮)统一叫 Widget 组件,等价HTML标签
  3. 组件全部用 () 包裹嵌套,标签闭合不是 </div>,而是括号成对闭合
  4. Column = HTML flex纵向排列;Row = HTML flex横向排列

六、第五步:删掉默认计数器,手写你的第一段Flutter页面(必手动敲,禁止复制)

操作:清空MyHomePage里body内容,从零写一个简单页面

Scaffold 里的body改成下面代码,逐行手动敲打,熟悉括号嵌套规则

body: Container(
  // 整个页面背景颜色,对应div的background-color
  color: Color(0xfff5f5f5),
  // 内边距,等同于CSS padding
  padding: EdgeInsets.all(20),
  child: Column(
    // 垂直方向居中
    mainAxisAlignment: MainAxisAlignment.center,
    // 子组件数组,页面里面放的所有内容,都写在children里
    children: [
      Text(
        '我的第一个Flutter页面',
        style: TextStyle(
          // 文字大小
          fontSize: 24,
          // 文字加粗
          fontWeight: FontWeight.bold,
          // 文字颜色
          color: Colors.black87,
        ),
      ),
      // 间距组件,相当于margin外边距
      SizedBox(height: 30),
      Container(
        width: double.infinity,
        height: 120,
        decoration: BoxDecoration(
          color: Colors.white,
          // 圆角
          borderRadius: BorderRadius.circular(12),
        ),
        child: Center(child: Text('卡片盒子,对应HTML的div')),
      )
    ],
  ),
),

写完点击运行,模拟器刷新,就能看到你自己写的页面布局。

新手最易错点(反复留意)

  1. Dart严格区分大小写Text正确,text直接报错
  2. 所有组件前后括号 () {} [] 必须成对,少一个括号页面直接爆红
  3. 层级嵌套顺序不能乱,外层包裹内层,和HTML div嵌套逻辑一致

七、第一天完整学习任务清单(按顺序做完,今天就算入门落地)

上午(3小时)

  1. 终端执行 flutter doctor,修复全部异常项 ✅
  2. Android Studio新建第一个Flutter项目,等待依赖加载完成 ✅
  3. 创建安卓模拟器,启动模拟器,运行默认Demo项目 ✅
  4. 对照文档,看懂main.dart每层代码作用,用笔简单标注注释 ✅

下午(3~4小时)

  1. 删除默认计数器代码,手动敲入上面简易页面布局 ✅
  2. 自行修改:文字内容、颜色、卡片宽高、圆角大小,实时看模拟器变化 ✅
  3. 练习新增:Row横向布局,并排放两个卡片(模拟一行两列布局,对标HTML弹性布局)

额外练习代码(横向布局练习,自己敲)

Row(
  children: [
    Expanded(
      child: Container(
        height: 100,
        margin: EdgeInsets.only(right: 10),
        color: Colors.blue[200],
        child: Center(child: Text('左侧卡片')),
      ),
    ),
    Expanded(
      child: Container(
        height: 100,
        color: Colors.orange[200],
        child: Center(child: Text('右侧卡片')),
      ),
    ),
  ],
)

晚间(1小时)

  1. 整理今天遇到的报错:括号缺失、单词大小写错误、路径中文报错,简单记录
  2. 背诵3个核心布局组件作用:
  • Column 纵向排
  • Row 横向排
  • Container 盒子容器(div)

八、第二天预习内容(我后面可以按天给你排每日任务)

  1. Dart基础语法:变量、List数组、函数写法(前端JS有相似之处,上手快)
  2. Flutter常用基础组件:Image图片、Icon图标、Padding边距
  3. 练习页面:仿简单首页顶部导航栏+内容列表

九、新手写规范代码的入门守则(从第一天养成习惯)

  1. 项目存放路径、项目文件名全程禁止中文、空格、特殊符号,极易编译失败
  2. 代码嵌套层级,按Tab自动缩进,层级一目了然,不要全部顶格写
  3. 不一次性复制大段AI代码,拿到代码拆分:看外层包裹→看布局→看样式,再手动仿写一遍
  4. 每次新建页面,单独创建一个dart文件,不要所有代码堆积在main.dart里

十、你接下来两种选择,我可以继续细化

  1. 我按 7天Dart学习计划 + 12天Flutter布局计划,每天给固定学习内容+练习代码+作业
  2. 你想边做小页面边学,做一个简易APP(登录页→首页→个人中心),跟着项目实操学习

你回复我一句:想要【按天系统化排课】,还是【边做小项目边学】,我给你整理下一阶段每日详细任务+配套练习代码。


  • 用微信  “扫一扫”

    将文章分享到朋友圈。

    关注公众号:xue-jiqiao

本文版权归原作者所有,转载请注明原文来源出处,学技巧网站制作感谢您的支持!