1.最简单的程序
import 'package:flutter/material.dart';
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: 'Welcome to Flutter',
home: new Scaffold(
appBar: new AppBar(
title: new Text('Welcome to Flutter'),
),
body: new Center(
child: new Text('Hello World'),
),
),
);
}
}
说明 就是 main方法(入口方法) 里面 return一个 runApp()方法,在runApp里面 传一个 无状态 widget .
2.有状态的fluter程序
widget 分为 无状态的和有状态的
- 无状态 : 继承StatelessWidget 重写是build ,最后return出来一个 widget, 也就是它本身是个 widget 最后还要return出来一个widget
- 有状态:
- Stateful widgets 持有的状态可能在widget生命周期中发生变化. 实现一个 stateful widget 至少需要两个类:
一个 StatefulWidget类。 重写createState方法 return state类
一个 State类。重写build return widget. StatefulWidget类本身是不变的,但是 State类在widget生命周期中始终存在.
import 'package:flutter/material.dart';
import 'package:english_words/english_words.dart';
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
var wordPair = new WordPair.random();
// TODO: implement build
return new MaterialApp(
title: "我的标题",
home : new Scaffold(
appBar:new AppBar(
title:new Text("标题21"),
),
body: new Center(
// child: new Text("111"),
child: new RandomWord(),
),
));
}
}
class RandomWord extends StatefulWidget {
@override
State<StatefulWidget> createState() {
// TODO: implement createState
return new RandomWordState() ;
}
}
class RandomWordState extends State<RandomWord>{
@override
Widget build(BuildContext context) {
// TODO: implement build
final wordPair = new WordPair.random();
return new Text(wordPair.asPascalCase);
}
}
//
//一个 StatefulWidget类。
//一个 State类。 StatefulWidget类本身是不变的,但是 State类在widget生命周期中始终存在.
第4步: 创建一个无限滚动ListView
在这一步中,您将扩展(继承)RandomWordsState类,以生成并显示单词对列表。 当用户滚动时,ListView中显示的列表将无限增长。 ListView的builder工厂构造函数允许您按需建立一个懒加载的列表视图。