添加动态组建
添加动态组建需要建立两个类。一个StatefulWidget
类,一个State
类。前者是后者的一个实例。而且,前者是不可变的,后者在前者的生存周期内一直保持存在。
第一个类内容较少,比较容易实现
class RandomWords extends StatefulWidget {
@override
RandomWordsState createState() => new RandomWordsState();
}
解释:从代码中可以看出,这个类继承自动态组建(StatefulWidget
),类中只实现了一个第二个类的一个类实例。
createState()
为组建创建一个可变的“状态
”,
下面创建第二个类
class RandomWordsState extends State<RandomWords> {
@override // Add from this line ...
Widget build(BuildContext context) {
final WordPair wordPair = new WordPair.random();
return new Text(wordPair.asPascalCase);
} // ... to this line.
}
代码中给第二个类添加了build
函数。
从之前的代码中移除一些不需要的代码
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
final WordPair wordPair = new WordPair.random(); # 去掉
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(wordPair.asPascalCase), # 去掉
child: new RandomWords(), # 添加
),
),
);
}
}
这里可以发现,代码中的类也可以作为函数使用。