288 votes

utilisation incorrecte du widget de données parent. les widgets développés doivent être placés à l'intérieur des widgets flex

Je reçois l'erreur suivante:

c.-à-d., Une autre exception a été levée: une utilisation incorrecte de ParentDataWidget. affichant une erreur sur l'écran du mobile.

  @override
  Widget build(BuildContext context) {

    return MaterialApp(
      title: widget.title,
      theme: ThemeData.light().copyWith(
        platform: _platform ?? Theme.of(context).platform,
      ),
      home: DefaultTabController(
        length: categoryNames.length,
        child: Scaffold(
        appBar: AppBar(
          title: Text(widget.title),
                 ),
        body: SafeArea(
            child: Column(
              children: <Widget>[
                Chewie(
                  controller: _chewieController,
                ),
                TabBar(
                  labelColor:Colors.black,
                  tabs: categoryNames,
                ),
                Expanded(
                  child: TabBarView(
                    children: [
                      ImageList()
                    ],
                  ),
                )
                /*TabBarView(
                  children: [
                    Icon(Icons.directions_car),
                    Icon(Icons.directions_transit),
                    Icon(Icons.directions_bike),
                  ],
                )*/
              ],
            )
        ),
      ),
      ),
    );
  }

C'est mon code, s'il vous plaît vérifier et laissez-moi savoir le problème.

510voto

Mark Bell Points 125

Vous ne devez utiliser Expanded qu'à l'intérieur d'un column , row ou flex .

106voto

secreal Points 579

Première règle: n'utilisez Expanded qu'à l'intérieur d'un column , row ou flex .

Deuxième règle: le parent column qui a une colonne enfant développée doit également être encapsulé avec une colonne développée

69voto

Paresh Mangukiya Points 13942

Dans ce cas, le simple fait de supprimer Expanded ou de l'envelopper dans un Column devrait résoudre le problème.

Un Expanded doit être un descendant d'un Row , Column , ou Flex

La solution à ce problème ci-dessus consiste à déplacer le expanded dans un widget flex . Exemple ci-dessous.

 Row(
    children: [
      Expanded(
        child: Column(
          children: [
            Container(
              padding: EdgeInsets.only(bottom: 8.0),
              child: Text(
                "Some Lage Somthing",
                style: TextStyle(fontWeight: FontWeight.bold),
              ),
            ),
            Text("Someplace, Country")
          ],
        ),
      ),
      Icon(Icons.star)
    ],
  ),
);

Joyeux flottement!

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X