繁体   English   中英

使用 Flutter 在 Android Studio 中热重载与热重启

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM