[英]Hot reload vs hot restart in Android Studio with Flutter
我正在虚拟和物理设备上测试我的 Flutter 入门应用程序。 问题是应用程序在热重载时不会在屏幕上更新(这被配置为在每次文件保存时工作),而只能在热重启时更新。 在屏幕截图上,这对应于右侧按钮,而不是左侧。
这是正常的还是有问题?
以防万一,这是我的main.dart
文件的内容:
import 'package:flutter/material.dart';
void main() {
runApp(
MaterialApp(
home: Scaffold(
backgroundColor: Colors.blueGrey,
appBar: AppBar(
title: Center(
child: Text('Hi Everybody!'),
),
backgroundColor: Colors.blueGrey[900],
),
body: Center(
child: Image(
image: AssetImage(
'images/diamond.png',
),
),
),
),
),
);
}
您正在 main 函数中编写所有内容。 所以热重载不起作用。
他们在Flutter 文档中提到了这一点
作为一般规则,如果修改后的代码位于根小部件的构建方法的下游,则热重载会按预期运行。 但是,如果由于重新构建widget树而不会重新执行修改后的代码,那么在热重载后您将看不到其效果。
所以你需要在根小部件下面写你的代码。
像这样写代码:
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
backgroundColor: Colors.blueGrey,
appBar: AppBar(
title: Center(
child: Text('Hi Everybody!'),
),
backgroundColor: Colors.blueGrey[900],
),
body: Center(
child: Image(
image: AssetImage(
'images/diamond.png',
),
),
),
),
);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.