当前位置:   article > 正文

【Flutter入门到进阶】Flutter基础篇---第一个Flutter应用

第一个flutter应用

1 Flutter目录结构介绍

1.1 创建项目

        flutter create flutterdemo

1.2 目录结构

1.3 结构说明

        1、android、ios、linux、macos、web、windows文件夹:都是对应平台相关代码

        2、lib文件夹:flutter相关代码,我们编写的代码就在这个文件夹

        3、test文件夹:用于存放测试代码

        4、pubspec.yaml:配置文件,一般存放一些第三方库的依赖。

        5、analysis_options.yaml文件:分析dart语法的文件,老项目升级成新项目有警告信息的话可以删掉 此文件

2 Flutter入口文件、入口方法

2.1 说明

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

2.2 示例

  1. void main(){
  2. runApp(MyApp());
  3. }
  4. //也可以简写
  5. void main()=>runApp(MyApp());

其中的main方法是dart的入口方法。

runApp方法是flutter的入口方法。

MyApp是自定义的一个组件

3 Flutter第一个Demo Center组件的使用

demo1

  1. //代码块
  2. import 'package:flutter/material.dart';
  3. void main() {
  4.   runApp(const Center(
  5.     child: Text(
  6.       "我是一个文本",
  7.       textDirection: TextDirection.ltr,
  8.     ),
  9.   ));
  10. }

使用可选参数添加相关属性信息

  1. import 'package:flutter/material.dart';
  2. void main() {
  3.   runApp(const Center(
  4.     child: Text(
  5.       "我是一个文本",
  6.       textDirection: TextDirection.ltr,
  7.       style: TextStyle(
  8.         fontSize: 40.0,
  9. // color: Colors.yellow,
  10.         color: Color.fromRGBO(2442331210.5),
  11.       ),
  12.     ),
  13.   ));
  14. }

demo3

  1. import 'package:flutter/material.dart';
  2. //MaterialApp 和 Scaffold两个组件装饰App
  3. void main() {
  4.   runApp(MaterialApp(
  5.     home: Scaffold(
  6.       appBar: AppBar(title: const Text("你好Flutter")),
  7.       body: const Center(
  8.         child: Text(
  9.           "我是一个文本",
  10.           textDirection: TextDirection.ltr,
  11.           style: TextStyle(
  12.             fontSize: 40.0,
  13. // color: Colors.yellow,
  14.             color: Color.fromRGBO(2442331210.5),
  15.           ),
  16.         ),
  17.       ),
  18.     ),
  19.   ));
  20. }

demo4

  1. import 'package:flutter/material.dart';
  2. import 'package:flutter/material.dart';
  3. //MaterialApp 和 Scaffold两个组件装饰App
  4. void main() {
  5.   runApp(MaterialApp(
  6.     home: Scaffold(
  7.       appBar: AppBar(title: const Text("你好Flutter")),
  8.       body:const HomeWidget(),
  9.     ),
  10.   ));
  11. }
  12. //抽离组件
  13. class HomeWidget extends StatelessWidget{
  14.   const HomeWidget({Key? key}) : super(key: key);
  15.   @override
  16.   Widget build(BuildContext context) {
  17.     return const Center(
  18.       child: Text(
  19.         "我是一个文本",
  20.         textDirection: TextDirection.ltr,
  21.         style: TextStyle(
  22.           fontSize: 40.0,
  23. // color: Colors.yellow,
  24.           color: Color.fromRGBO(2442331210.5),
  25.         ),
  26.       ),
  27.     );
  28.   }
  29. }

4 MaterialApp 和 Scaffold两个组件装饰App

4.1 MaterialApp

        MaterialApp是一个方便的Widget,它封装了应用程序实现Material Design所需要的一些Widget。一 般作为顶层widget使用。

        常用的属性:

                home  (主页)

                title  (标题)

                color  (颜色)

                theme  (主题)

                routes  (路由)

                ...

4.2 Scaffold

        Scaffold是Material Design布局结构的基本实现。此类提供了用于显示drawer、snackbar和底部sheet 的API。

        Scaffold 有下面几个主要属性:

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

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

                drawer - 抽屉菜单控件。

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

        在Flutter中自定义组件其实就是一个类,这个类需要继承StatelessWidget/StatefulWidget 前期我们都继承StatelessWidget。后期给大家讲StatefulWidget的使用。

        StatelessWidget 是无状态组件,状态不可变的widget

        StatefulWidget 是有状态组件,持有的状态可能在widget生命周期改变

示例

  1. import 'package:flutter/material.dart';
  2. import 'package:flutter/material.dart';
  3. //MaterialApp 和 Scaffold两个组件装饰App
  4. void main() {
  5.   runApp(MaterialApp(
  6.     home: Scaffold(
  7.       appBar: AppBar(title: const Text("你好Flutter")),
  8.       body:const HomeWidget(),
  9.     ),
  10.   ));
  11. }
  12. class HomeWidget extends StatelessWidget{
  13.   const HomeWidget({Key? key}) : super(key: key);
  14.   @override
  15.   Widget build(BuildContext context) {
  16.     return const Center(
  17.       child: Text(
  18.         "我是一个文本",
  19.         textDirection: TextDirection.ltr,
  20.         style: TextStyle(
  21.           fontSize: 40.0,
  22. // color: Colors.yellow,
  23.           color: Color.fromRGBO(2442331210.5),
  24.         ),
  25.       ),
  26.     );
  27.   }
  28. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/816348
推荐阅读
相关标签
  

闽ICP备14008679号