运行第一个Flutter App
2019-04-30 15:15
761 查看
文本是在 AndroidStudio 开发工具中开发 Flutter 的。
个人博客
运行第一个Flutter App
1:启动AndroidStudio,选择Start a new Flutter project。
2:选择Flutter Application。
3:配置信息。
4:设置包名。
5:运行flutter_hello_world App。
分析lib/main.dart
1: Flutter程序入口。
Flutter程序入口是一个
main()函数:
void main() => runApp(MyApp());
在
main()函数中调用
runApp()函数,传入一个
MyApp()widget的参数。
2:创建一个无状态的部件(Stateless widget)
有状态的部件和无状态部件的区别主要在于状态的改变:
-
Stateless widgets 是不可变的, 这意味着它们的属性不能改变 - 所有的值都是最终的。
-
Stateful widgets 持有的状态可能在widget生命周期中发生变化. 实现一个 stateful widget 至少需要两个类:
一个 StatefulWidget类。
-
一个 State类。 StatefulWidget类本身是不变的,但是 State类在widget生命周期中始终存在。
MyApp()是一个无状态的部件,所有的界面UI都是在
build()函数中处理,如下面代码所示
class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Demo', theme: ThemeData( primarySwatch: Colors.blue, ), home: MyHomePage(title: 'Flutter Demo Home Page'), ); } }
在
build()函数中引用了
MaterialApp()widget,主要实现了Material风格的相关部件,包括标题、主题、主界面。
2:创建一个有状态的部件(Stateful widget)
MyHomePage()是一个有状态的部件,除了创建State类之外几乎没有其他任何东西,如下面代码所示
class MyHomePage extends StatefulWidget { MyHomePage({Key key, this.title}) : super(key: key); final String title; @override _MyHomePageState createState() => _MyHomePageState(); }
3:创建
_MyHomePageState()类
该类持有
MyHomePage()widget的状态,并且该应用程序的大部分代码都在该类中。界面主要展示标题栏、居中展示两行文本以及悬浮按钮,如下面代码所示
@override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(widget.title), ), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ Text( 'You have pushed the button this many times:', ), Text( '$_counter', style: Theme.of(context).textTheme.display1, ), ], ), ), floatingActionButton: FloatingActionButton( onPressed: _incrementCounter, tooltip: 'Increment', child: Icon(Icons.add), ), ); }
4:添加交互
与有状态的部件进行交互,主要是通过
setState()函数,当调用该函数时,会触发
build()函数刷新,如下面代码所示
setState(() { });
用户可以通过点击悬浮按钮,来刷新点击的次数,如下面代码所示
void _incrementCounter() { setState(() { _counter++; }); }
这部分内容就不深究了,简单了解一下就行
相关文章推荐
- Flutter初体验(二)—— 创建第一个Flutter APP
- 搭建Python的Django框架环境并建立和运行第一个App的教程
- ionic —— 开发环境搭建并编译运行第一个APP
- Flutter第二期 - 第一个flutter三平台APP
- [Andriod官方训练教程]创建你的第一个App之运行你的App
- Hello Flutter!(编写你的第一个 Flutter App)
- [Andriod官方训练教程]创建你的第一个App之运行你的App
- 下载 编译和运行android源码以及开发第一个app
- 编写第一个Flutter App(翻译)
- 搭建Python的Django框架环境并建立和运行第一个App的教程
- 《Monkey Android》第4课之运行第一个App
- Android判断App是否在前台运行
- 交叉编译的app放到目标板上运行提示-/bin/sh: XXX: not found
- Win32中CInternetSession运行异常(afxCurrentAppName 为空)
- Iphone开发(二)从helloWorld看app应用的运行轨迹和生命周期
- App小样在手机运行了一下
- [TPYBoard-Micropython之会python就能做硬件 1] 运行第一个脚本——点亮LED
- App运行速度分析以及初步优化方案
- c# 程序只能运行一次(多次运行只能打开同一个程序) 并激活第一个实例,使其获得焦点,并在最前端显示.
- ionic的安装使用并创建第一个app