flutter中的runApp(new MyApp())和runApp(new MaterialApp())有什么区别?
问题内容:
在flutter中,我们可以传递一个无状态小部件,该小部件将MaterialApp
实例返回给runApp()
函数,如下所示:
void main()=>runApp(new MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
...
);
}
}
或者我们可以像这样MaterialApp
直接将的实例传递给runApp()
函数:
void main()=>runApp(
new MaterialApp(
...
);
);
这些方法之间有什么区别?谢谢。
问题答案:
视觉行为没有差异。变化的是热重装的行为方式。
例如,如果您使用runApp(MaterialApp())
,则从
runApp(MaterialApp(title: 'Foo'))
至
runApp(MaterialApp(title: 'Bar'))
则热重载不会考虑更改。
而如果您有以下课程:
class MyApp {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Foo',
);
)
}
并像这样使用它:
runApp(MyApp())
然后改变title
的MyApp
将被正确地重新加载热点。