建立公司网站步骤,云工厂网站建设,网站优化公司的seo做的好,郑州网站优化托管1、创建项目
1.1 新建 1.2 选择Flutter SDK的位置 1.3 项目名称 英文单词加下划线起名规范#xff0c;其他默认即可。 1.4 点击运行 发生报错显示我们的JAVA版本不符合
1.5 更改版本设置 1.6 再次启动项目 2、分析页面代码
以下是lib/main.dart的源代码#xff08;为了阅…1、创建项目
1.1 新建 1.2 选择Flutter SDK的位置 1.3 项目名称 英文单词加下划线起名规范其他默认即可。 1.4 点击运行 发生报错显示我们的JAVA版本不符合
1.5 更改版本设置 1.6 再次启动项目 2、分析页面代码
以下是lib/main.dart的源代码为了阅读方便删掉了注释
import package:flutter/material.dart;void main() {runApp(const MyApp());
}class MyApp extends StatelessWidget {const MyApp({super.key});overrideWidget build(BuildContext context) {return MaterialApp(title: Flutter Demo,theme: ThemeData(colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),useMaterial3: true,),home: const MyHomePage(title: Flutter Demo Home Page),);}
}class MyHomePage extends StatefulWidget {const MyHomePage({super.key, required this.title});final String title;overrideStateMyHomePage createState() _MyHomePageState();
}class _MyHomePageState extends StateMyHomePage {int _counter 0;void _incrementCounter() {setState(() {_counter;});}overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(backgroundColor: Theme.of(context).colorScheme.inversePrimary,title: Text(widget.title),),body: Center(child: Column(mainAxisAlignment: MainAxisAlignment.center,children: Widget[const Text(You have pushed the button this many times:,),Text($_counter,style: Theme.of(context).textTheme.headlineMedium,),],),),floatingActionButton: FloatingActionButton(onPressed: _incrementCounter,tooltip: Increment,child: const Icon(Icons.add),),);}
}2.1 导包
import package:flutter/material.dart此代码的作用是导入Material UI组件库。Material是一种标准的移动端和Web端的视觉设计语言Flutter默认提供了一套丰富的Material风格的UI组件。 2.2 应用入口
void main() {runApp(const MyApp());
}//也可以写作, 符号为Dart中单行函数或者方法的简写方式
// void main() runApp(const MyApp());在Flutter应用中main函数为应用程序的入口。main函数中调用了runApp方法它的功能是启动Flutter应用。runApp接受一个Widget参数在示例代码中接收了一个MyApp对象MyApp()是Flutter应用的根组件。 2.3 应用结构
class MyApp extends StatelessWidget {/* 声明了一个常量构造函数它使得Flutter在编译时就确定MyApp对象的结构而不是在运行时动态创建。这可以提升一定性能在编译时优化常量对象的创建过程并且在多个地方使用同一个常量对象时可以减少内存使用。*/const MyApp({super.key});overrideWidget build(BuildContext context) {return MaterialApp(// 应用名称title: Flutter Demo,// 主题设置theme: ThemeData(// 主题颜色colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),// 是否使用Material 3的设计规范useMaterial3: true,),// 应用首页路由home: const MyHomePage(title: Flutter Demo Home Page),);}
}MyApp类代表Flutter应用继承了StatelessWidget类即应用本身也是一个Widget在Flutter中大多数东西都是Widget包括对齐alignment、填充padding、布局layout等属性Flutter调用组件的bulid方法构建页面Wiget的主要功能是提供一个bulid方法描述如何构建UI在bulid方法内部组合拼装、组合其他基础的Widget来实现home为Flutter应用的首页也是一个Widget。
2.4 首页
class MyHomePage extends StatefulWidget {const MyHomePage({super.key, required this.title});final String title;overrideStateMyHomePage createState() _MyHomePageState();
}class _MyHomePageState extends StateMyHomePage {int _counter 0;void _incrementCounter() {setState(() {_counter;});}MyHomePage是Flutter应用的首页其继承于StatefulWidget类表明它是一个有状态的组件Stateful Widget;除了有状态组件还有无状态组件Stateless Widget。 Stateful Widget可以拥有状态这些状态在Widget生命周期中是可以发生改变的而Stateless Widget则是不可变的Stateful Widget至少由两个类组成 一个StatefulWidget类一个State类StatefulWidget类本身不发生改变但State类中持有的状态在Widget生命周期中则可能发生变化。 ful Widget可以拥有状态这些状态在Widget生命周期中是可以发生改变的而Stateless Widget则是不可变的 Stateful Widget至少由两个类组成 一个StatefulWidget类一个State类StatefulWidget类本身不发生改变但State类中持有的状态在Widget生命周期中则可能发生变化。
持续更新中