使用Flutter在Android Studio中进行热重装与热重启动

时间:2020-03-28 11:22:08

标签: android-studio flutter dart

我正在虚拟设备和物理设备上测试Flutter入门应用程序。问题在于,热重载时该应用程序不会在屏幕上更新(此配置可在每次保存文件时使用),而仅在热重启动时才更新。在屏幕截图中,它对应于右键,而不是左边。

这是正常的还是出问题了?

enter image description here

以防万一,这是我的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',
            ),
          ),
        ),
      ),
    ),
  );
}

1 个答案:

答案 0 :(得分:1)

您正在将所有内容编写在main函数中。因此热重装无法正常工作。

他们在Flutter Documentaion

中提到了这一点

通常,如果修改后的代码在根目录的下游 窗口小部件的构建方法,然后热重装按预期方式运行。然而, 如果由于重建而不会重新执行修改后的代码 小部件树,那么在热重载后您将看不到它的效果。

所以您需要在根窗口小部件下面编写代码。

编写如下代码:

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',
        ),
      ),
    ),
  ),
);
}
}