0
votes

Vérification du flutter si les widgets à l'intérieur de SingLechechildScrollView in Home Screen sont construits ou non

J'ai une application eCommerce dans laquelle je charge plusieurs widgets qui utilise leur propre avenir pour la construire. J'ai 6 widgets à Singlechechildscrollview. Le problème est que je vois 6 circulairesProgressindicator qui a l'air très mauvais.

Comment puis-je vérifier si le widget à l'intérieur de SingLechechildScrollView a construit et instate vers _isloading = false; p> Exemple de 1 Widget Dans SingLechechDscrollView à Homescreen. P>

class Banner1Slot extends StatefulWidget {
  @override
  _TopCategoriesListState createState() => _TopCategoriesListState();
}

class _TopCategoriesListState extends State<Banner1Slot> {
  @override
  Widget build(BuildContext context) {
    return FutureBuilder<List<Banner1>>(
      future: getBanner1(http.Client()),
      builder: (context, snapshot) {
        if (snapshot.hasError) print(snapshot.error);
        return snapshot.hasData
            ? Banner1Image(
                banner1: snapshot.data,
              )
            : Center(
                child: CircularProgressIndicator(
                  backgroundColor: Colors.black26,
                ),
              );
      },
    );
  }
}


0 commentaires

3 Réponses :


0
votes

Qu'en est-il d'avoir un auditeur qui écoute tous les isloadingwidget dans les widgets et et et? ischarger = ischargerwidget1 && ischargewidget2 ...


2 commentaires

J'ai juste besoin de 1 ischarge. Il y a beaucoup de widgets à l'intérieur de l'écran d'accueil et je souhaite vérifier si 1 du widget est construit, puis sur la base à False


Vous pouvez ajouter une valeur isloadingwidget à chacun d'eux. Ensuite, écoutez les thèses "ischargerwidget" et en utilisant le fonctionnement et l'utilisation si l'une d'entre elles est prête, vous obtiendrez une fausse valeur pour la création de loisirs. J'ai édité ma réponse selon ce commentaire.



0
votes

u besoin d'utiliser ChangenotifierProvider pour mieux gérer la circulaireProgressIndicator et appelez NOTINICERLISTENER POUR SETSTE Votre mise en page


0 commentaires

0
votes

Essayez Utiliser FONCTION STRAND> IN BANNANNIMAGE STORT> Comme ceci:

@override
  Widget build(BuildContext context) {
    return Scaffold(
      body: _isLoading
          ? Container(
              width: MediaQuery.of(context).size.width,
              height: MediaQuery.of(context).size.height,
              child: Center(child: CircularProgressIndicator()))
          : SingleChildScrollView(
              child: Column(
                children: <Widget>[
                  CarouselSliderList(),
                  Banner1Slot((){
                    setState(){
                       _isLoading = false;
                      };
                   }),
                  TopCategoriesList(),
                  HotProducts(),
                  TopCategoriesIconList(),
                  AllProduct(),
                ],
              ),
            ),
    );
  }


0 commentaires