Home » Flutter项目 » 3.Flutter目录结构介绍、入口、自定义Widget、Center组件、Text组件、MaterialApp组件、Scaffold组件

3.Flutter目录结构介绍、入口、自定义Widget、Center组件、Text组件、MaterialApp组件、Scaffold组件

编 辑:Y ┊ 时 间:2022年09月13日 ┊ 访问: 24 次

Flutter 目录结构介绍、入口、自定义Widget 、 Center 组件、 Text 组件、MaterialApp 组件、 Scaffold 组件

一、Flutter目录结构介绍....................................................................................................... 1
二、Flutter入口文件、入口方法........................................................................................... 2
三、Flutter第一个DemoCenter组件的使用....................................................................... 2
四、Flutter把内容单独抽离成一个组件............................................................................... 3
五、给Text组件增加一些装饰............................................................................................. 4
六、件用MaterialApp 和Scaffold两个组件装饰App........................................................ 4
1 、MaterialApp.................................................................................................................. 4
2 、Scaffold....................................................................................................................... 5
七、Vscode调试Flutter项目................................................................................................. 6

一、 Flutter 目录结构介绍

我们着重需要注意一下几个文件夹,其他的暂时不用理会

文件夹 作用

android android平台相关代码

ios ios平台相关代码

lib flutter相关代码,我们主要编写的代

码就在这个文件夹

test 用于存放测试代码

pubspec.yaml 配置文件,一般存放一些第三方库的依

赖。

二、 Flutter 入口文件、入口方法

每一个flutter项目的lib目录里面都有一个main.dart这个文件就是flutter的入口文件

main.dart里面的

void main(){
    runApp(MyApp());
}

也可以简写

void main()=>runApp(MyApp());

其中的main方法是dart的入口方法。runApp方法是flutter的入口方法。
MyApp是自定义的一个组件

三、 Flutter 第一个 Demo Center 组件的使用

import 'package:flutter/material.dart';


void main() {

  runApp(const Center(

    child: Text(

      "我是一个文本内容",

      textDirection: TextDirection.ltr,

    ),

  ));

}

四、 Flutter 把内容单独抽离成一个组件

在Flutter中自定义组件其实就是一个类,这个类需要继承StatelessWidget/StatefulWidget
前期我们都继承StatelessWidget。后期给大家讲StatefulWidget的使用。
StatelessWidget 是无状态组件,状态不可变的widget
StatefulWidget 是有状态组件,持有的状态可能在widget生命周期改变

import 'package:flutter/material.dart';

  

void main() {

  runApp(MyApp());

}

  

// ignore: use_key_in_widget_constructors

class MyApp extends StatelessWidget {

  @override

  Widget build(BuildContext context) {

    return const Center(

      child: Text(

        "我是一个文本内容",

        textDirection: TextDirection.ltr,

      ),

    );

  }

}

五、给 Text 组件增加一些装饰

import 'package:flutter/material.dart';


void main() {
  runApp(MyApp());
}


// ignore: use_key_in_widget_constructors

class MyApp extends StatelessWidget {

  @override

  Widget build(BuildContext context) {

    // ignore: todo

    // TODO: implement build

    return const Center(

      child: Text("我是一个内容",

          textDirection: TextDirection.ltr,

          style: TextStyle(

              fontSize: 40.0,

              fontWeight: FontWeight.bold,

              color: Color.fromRGBO(255, 222, 222, 0.5))),

    );

  }

}

六、件用 MaterialApp 和 Scaffold 两个组件

装饰 App

1 、 MaterialApp

MaterialApp 是一个方便的Widget,它封装了应用程序实现MaterialDesign所需要的

一些Widget。一般作为顶层widget使用。

常用的属性:

home(主页)
title(标题)
color(颜色)
theme(主题)
routes(路由)
...

2 、 Scaffold

Scaffold 是MaterialDesign布局结构的基本实现。此类提供了用于显示drawer、

snackbar和底部sheet的API。

Scaffold 有下面几个主要属性:

appBar-显示在界面顶部的一个 AppBar。

body-当前界面所显示的主要内容 Widget。

drawer-抽屉菜单控件。

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}


class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: "我是一个标题",
      home: Scaffold(
        appBar: AppBar(
          title: const Text('IT 营'), elevation: 30.0, //设置标题阴影 不需要的话值设置成 0.0
        ),
        body: MyHome(),
      ),
      theme: ThemeData(
          //设置主题颜色
          primarySwatch: Colors.yellow),
    );
  }
}


// ignore: use_key_in_widget_constructors
class MyHome extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return const Center(
      child: Text(
        "我是 Dart 一个文本内容",
        textDirection: TextDirection.ltr,
        style: TextStyle(
            fontSize: 40.0, fontWeight: FontWeight.bold, color: Colors.black38
            // color: Color.fromRGBO(255, 222, 222, 0.5)
            ),
      ),
    );
  }

}

七、 Vscode 调试 Flutter 项目

1Vscode 中打开 flutter 项目进行开发

2 、运行 Flutter 项目

flutter run

r 键:点击后热加载,也就算是重新加载吧。
p 键:显示网格,这个可以很好的掌握布局情况,工作中很有用。
o 键:切换android和ios的预览模式。
q 键:退出调试预览模式。

3Vscode 默认连不上第三方模拟器解决方案

cd 到对应夜神模拟器 D:\Program Files\Nox\bin 目录 然后运

nox_adb.exe connect 127.0.0.1:62001



Copyright © 2026 Y 版权所有.网站运行:13年238天21小时25分