Hello Flutter

Posted flutter开发者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hello Flutter相关的知识,希望对你有一定的参考价值。

在前面的一些文章中我们了解了Flutter是什么,学习了Dart的基本语法,今天我们就进入Flutter的世界,来开发第一个Flutter程序。


开发工具


工欲善其事,必先利其器,那么我们必须有一款比较好的IDE了,由于Flutter是google的亲儿子,所以jetbrains旗下基本上所有的产品都可以安装google的Flutter插件,Flutter插件内部会自动帮你下载Dart插件。


File->Settings->plugins->Browse Respositorise->输入 flutter搜索 安装重启即可


当然,你也可以使用XCode和vs code下载相关的插件来进行Flutter开发。


新建项目

接下来,我们以android Studio为例来进行今天的例子


选择 新建 flutter Application程序

Hello Flutter



在点击确认按钮,经过短暂的编译后,插件会为你建立一个默认的flutter程序

Hello Flutter

主要的代码在lib目录下的main.dart里面,当然现在大家还不需要完全看懂它,我们会在接下来的文章中一点点的去学习它。


现在我们仅仅看看它运行的效果吧

链接手机或者打开模拟器,点击右上角的运行按钮即可在设备上运行默认程序


Hello Flutter


当然,上面的效果不是我们今天要实现的效果,我们打开lib目录下的main.dart


删除掉以前的代码,然后重新输入我们今天要实现的Hello flutter代码


import 'package:flutter/material.dart';

void main() {
 runApp(new MaterialApp(home:new MyApp()));
}

class MyApp extends StatelessWidget {
 @override
 
Widget build(BuildContext context) {

   return new Scaffold(appBar:
   new AppBar(title: new Text("Hello Flutter")),
     
body: new Center(
         child: new Text("Hello Flutter")
      )
   );
 
}

}

在上面代码的最上面我们引入了flutter内置支持的material设计风格库


void main() {
 runApp(new MaterialApp(home:new MyApp()));
}


main方法是程序的主入口,默认都要事先runapp方法,runapp方法需要传入一个app级别的Widget,如上述代码所示,我们传入了一个MaterialApp对象,app级别的Wideget需要传入继承于StatelessWidget(无状态组件)或者StateFulWidget(有状态组件)这两个组件会在后面的文章中具体讲解,现在大家就记住是什么就行了。


class MyApp extends StatelessWidget {
 @override
 
Widget build(BuildContext context) {

   return new Scaffold(appBar:
   new AppBar(title: new Text("Hello Flutter")),
     
body: new Center(
         child: new Text("Hello Flutter")
      )
   );
 
}

}

由于本篇文章的例子界面的状态在第一次初始化时就已经确认了,所以我们这次只需要继承StatelessWidget即可。


StatelessWidget会默认实现一个build方法,然后这个build方法会让你返回一个任意的widget,在上面的例子中我们new 了一个 Scaffold对象(翻译过来就是脚手架的意思,相比做前端的同学都比较熟悉这个概念),这个Scaffold对象里有需要的参数,但大多数都是可选的,我们这次仅仅传入了appBar(ios 、Android中的ToolBar类似),参数home 就是toolbar下面的内容区域。


home参数也是接受一个任意类型的Widget对象,这里我们传入一个让内部View居中的Center对象。在Center对象中我们传入了一个child,当然这个child也是一个任意类型的Widget对象。


经过上面的讲解,想必大家都已经大概知道了这个app长什么样子了,就是上面一个ToolBar标题为“Hello Flutter”,内容区域是一个居中的“Hello Flutter”文字。

那么,到底是不是这个样子呢?我们还是运行来看一下效果吧。


还是上面说的点击IDE toobar上面的运行按钮,直接运行到设备上。


Hello Flutter

哒哒,效果和我们想象的一样。这样我们第一个Flutter程序就完成了。


今日回顾 


  1. runApp是Flutter程序的主入口,需要传入App级的Widget对象

  2. StatelessWidget是无状态组件,StatefulWidget是有状态组件

  3. Scaffold脚手架,类似于客户端的toolbar+内容视图。


好了各位小主,今天就先这样,下次我们来认识下Flutter Widget



我怀疑这个是个坏掉的二维码,不信你试试



以上是关于Hello Flutter的主要内容,如果未能解决你的问题,请参考以下文章

Flutterflutter doctor 报错Android license status unknown. Run `flutter doctor --android-licenses‘(代码片段

flutter解决 dart:html 只支持 flutter_web 其他平台编译报错 Avoid using web-only libraries outside Flutter web(代码片段

sublime text 3 添加代码片段

Flutter 报错 DioError [DioErrorType.DEFAULT]: Bad state: Insecure HTTP is not allowed by platform(代码片段

Flutter 布局备忘录

sublime text3 添加新片段