J'ai deux fichiers, main.dart et sections.dart .
J'ai défini quelques widgets dans section.dart et les ai utilisés dans le fichier main.dart , lorsque j'exécute flutter run les changements de commande sont affichés à l'écran, mais lorsque j'appuie sur R pour recharger à chaud , rien ne change à l'écran.
main.dart:
return MaterialApp(
title: 'Share IDEAS',
);
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"),
],
),
);
Peut-être parce que je répète:
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,
],
),
),
);
}
}
dans sections.dart , ou quelque chose comme ça à voir avec la fonction principale.
UPDATE:
J'ai déplacé le contenu du fichier sections.dart dans le fichier main.dart. Le rechargement à chaud ne fonctionne toujours pas.
4 Réponses :
Parfois, le flutter est confondu avec de grandes quantités de modifications, et vous devez effectuer un redémarrage, en particulier lorsque vous interagissez avec l'ensemble de la fonction App ou main .
Vous pouvez appuyer sur Ctrl + C pour arrêter le processus flutter run et essayer de le relancer. De plus, si vous exécutez Flutter via IntelliJ ou Android Studio, le plug-in Flutter inclut une fonction "Hot Restart" qui accomplit la même chose.
il doit y avoir une raison quelconque, toutes les modifications dans les fichiers main.dart apparaissent, mais lorsque je change quoi que ce soit dans section.dart, aucune modification ne s'affiche. sur rechargement à chaud.
La façon dont vous l'avez présenté signifie que seules les modifications apportées à Widget labelsSection = Container (... devraient avoir un effet sur l'application. De plus, vous avez une définition en double de MyApp dans les sections - cela ne s'utilise pas, et vous devriez probablement le renommer pour ne pas vous confondre.
quelle solution? s'il te plaît
Je dirais que la meilleure solution est de déplacer tout ce dont vous avez besoin de sections vers main , et de supprimer complètement le fichier sections jusqu'à ce que vous soyez plus à l'aise avec le développement Flutter, car la façon dont vous abordez la structure des fichiers est incorrecte.
je veux garder le fichier principal propre.
Je comprends, mais le fait que vous ayez plus d'une instance de MaterialApp dans votre projet est un gros drapeau rouge. Commencez petit avec tous les widgets dans le fichier principal , et lorsque vous n'avez pas rechargé à nouveau, PUIS les séparer. De plus, pour mémoire, le MyApp dans les sections n'est pas du tout utilisé et ne fait que créer des problèmes.
J'ai supprimé section.dart et utilisé ces sections, dans le fichier principal, le rechargement à chaud ne fonctionne toujours pas.
Cela se produit généralement lorsque vous avez modifié beaucoup de code, ajouté des états, changé un widget de l'état sans état à l'état plein, etc. Préformer un redémarrage à chaud (ctrl + F5) résoudra ce problème. Si cela ne fonctionne toujours pas, essayez de supprimer l'application de votre téléphone / simulateur / émulateur (en fermant l'application et en la supprimant) et en exécutant à nouveau le débogage / le flutter. Cela devrait résoudre votre problème
Un problème a été signalé à Flutter à ce sujet, https: // github .com / flutter / flutter / issues / 17155 # issue-319238844
Fondamentalement, c'est comme si Flutter n'identifiait pas correctement les modifications afin de générer des fichiers de construction mis à jour (selon ma compréhension personnelle):
<½Solution
Une solution simple consiste à nettoyer le projet et à le reconstruire.
J'utilise Android Studio Android Studio 3.6, les étapes suivantes illustrent comment nettoyer le projet Flutter
Après avoir déplacé un fichier vers un autre répertoire, Android Studio a changé mes importations en chemins absolus.
import 'package:samplescreencollection/components/reading_list_card.dart';
j'ai dû le changer en ceci
import 'file:///C:/Users/svenv/AndroidStudioProjects/sample_screen_collection/lib/welcome/reading_list_card.dart';