
import 'package:flutter/material.dart'; //安卓风格widgetimport 'package:flutter/cupertino.dart'; //苹果风格widgetvoid main() => runApp(MyApp()); //指定入口为 MyApp//入口class MyApp extends StatelessWidget { //MaterialApp 为root widget @override Widget build(BuildContext context) { //MaterialApp 表示当前应用的风格是 Material Design。 //为了使用其他已经封装好的 Material Design 风格的 Widget,就必须使用 MaterialApp。 //因此 MaterialApp 经常是 Flutter Widget 树里的第一个元素,就是 Root Widget。 return MaterialApp( title: 'Flutter Demo',//目前不知道干啥用的.应该是显示在导航栏上的,但是没有作用,感觉是被Scaffold覆盖掉了 theme: ThemeData( //ThemeData 设置 Flutter App 的主题,比如颜色、字体等。 primarySwatch: Colors.blue, //导航栏的背景色 ), //home 必须要赋值,因为是进入app的第一个页面. 一般都是 Scaffold home: MyHomePage(title: 'Flutter Demo Home Page'), ); }}//这里才是正在的根视图class MyHomePage extends StatefulWidget { MyHomePage({Key key, this.title}) : super(key: key); final String title; @override _MyHomePageState createState() => _MyHomePageState();}class _MyHomePageState extends State<MyHomePage> { @override Widget build(BuildContext context) { //Scaffold 是实现 Material Design 基本视觉布局结构的 Widget, //它被设计为 MaterialApp 的顶级容器,会自动填满屏幕,而且会自动适配不同的屏幕,例如刘海屏等。 return Scaffold( appBar: AppBar( //顶部的导航栏,不设置的话就不会显示。 title: Text(widget.title), //设置标题取的是上面homePage的title backgroundColor: Colors.deepOrange, //设置导航栏的背景颜色 ), //body 是 Widget 类型,是 Scaffold 的最重要的属性,也是实际要显示的 UI body: Center( //Center、Container child: Column( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ Text( 'You have pushed the button this many times:', ), Text( '$_counter', style: Theme.of(context).textTheme.display1, ), ], ), ), ); }}