我有两个文件,main.dart
和sections.dart
。
我在section.dart
中定义了一些小部件,并在main.dart
文件中使用了它们,当我运行flutter run
时,命令更改会显示在屏幕上,但是当我按下R
时,进行热装,屏幕上没有任何变化。
main.dart:
import 'package:flutter/material.dart';
import 'sections.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Share IDEASS',
home: Scaffold(
appBar: AppBar(
title: Text('IDEASs'),
),
body: ListView(
children: [
labelsSection,
],
),
),
);
}
}
Sections.dart:
import 'package:flutter/material.dart';
class MyApp extends StatelessWidget {
Widget build(BuildContext context) {
return MaterialApp(
title: 'Share IDEAS',
);
}
}
Column labelSectionMethod(color,IconData icon, String label,String numbers){
return Column(
children: <Widget>[
Icon(icon, color:color),
Container(
child: Text(label,
style: TextStyle(color: color
),
),
),
Container(
child:Text(numbers,
style:TextStyle(color:color
),
),
),
],
);
}
Widget labelsSection=Container(
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
labelSectionMethod(Colors.red,Icons.supervised_user_circle,"IDEASS","35"),
labelSectionMethod(Colors.red,Icons.favorite,"LIKE","22"),
labelSectionMethod(Colors.red,Icons.data_usage,"STREAK","12"),
],
),
);
也许是因为我在重复:
return MaterialApp(
title: 'Share IDEAS',
);
在sections.dart
中,或与主要功能有关。
更新:
我将main.dart文件中的sections.dart文件的内容移动了,但仍无法进行热重装。
答案 0 :(得分:4)
将文件移动到另一个目录后,Android Studio将导入更改为绝对路径。
import 'file:///C:/Users/svenv/AndroidStudioProjects/sample_screen_collection/lib/welcome/reading_list_card.dart';
我不得不将其更改为此
import 'package:samplescreencollection/components/reading_list_card.dart';
答案 1 :(得分:1)
通常在更改大量代码,添加状态,将小部件从无状态更改为完整状态等情况下发生。执行热重启(ctrl + F5)将解决此问题。 如果仍然无法解决问题,请尝试从手机/模拟器/模拟器中删除该应用程序(关闭该应用程序,然后将其删除),然后再次运行调试/ flutter。这应该可以解决您的问题
答案 2 :(得分:1)
已向Flutter报告有关此问题,https://github.com/flutter/flutter/issues/17155#issue-319238844
基本上,这就像Flutter没有正确识别更改以生成更新的构建文件(我个人理解):
解决方案
简单的解决方案是清理项目并重建它。
我正在使用Android Studio Android Studio 3.6,以下步骤说明了如何清理Flutter项目
答案 3 :(得分:0)
有时候,抖动会与大量更改混淆,您需要执行重新启动,尤其是在与整个App
或main
函数进行交互时。
您可以按Ctrl+C
终止flutter run
进程,然后尝试再次启动它。另外,如果您通过IntelliJ或Android Studio运行Flutter,则flutter插件将包含一项“热重启”功能,可以完成相同的操作。
答案 4 :(得分:0)
我的情况是 - Flutter 既不会热重载,也不会在断点处停止,甚至不会为 Android 模拟器提供新的构建,而 iOS 很好。
我尝试了上面的建议,但没有任何效果,花了一天时间研究这些事情。我从 Android Studio 3.x 升级到 4.1,但没有任何变化。
对我有用的是: