1
votes

Le rechargement à chaud Flutter ne fonctionne pas pour afficher les modifications

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.


0 commentaires

4 Réponses :


0
votes

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.


7 commentaires

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.



2
votes

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


0 commentaires

1
votes

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

  1. Accédez à Outils dans la barre de navigation
  2. Sélectionnez Flutter > Flutter Clean

 entrez la description de l'image ici

  1. Enfin, Exécutez à nouveau le projet en cliquant sur l'icône de lecture verte

0 commentaires

4
votes

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';


0 commentaires