我正在虚拟设备和物理设备上测试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',
),
),
),
),
),
);
}
答案 0 :(得分:1)
您正在将所有内容编写在main函数中。因此热重装无法正常工作。
中提到了这一点通常,如果修改后的代码在根目录的下游 窗口小部件的构建方法,然后热重装按预期方式运行。然而, 如果由于重建而不会重新执行修改后的代码 小部件树,那么在热重载后您将看不到它的效果。
所以您需要在根窗口小部件下面编写代码。
编写如下代码:
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',
),
),
),
),
);
}
}