2 votes

Flutter/Dart - Un RenderFlex a débordé de 99804 pixels en bas

Quelqu'un peut-il voir pourquoi j'obtiens cette erreur sur le premier enfant : Column ? J'utilise une pile dans ma construction et j'ai essayé d'envelopper chaque widget dans un widget flexible mais je n'arrive pas à comprendre où le code déborde. L'écran fait clignoter les lignes jaunes/noires de renderflex pendant une seconde, puis le rendu semble correct. Les messages dans la console sont ennuyeux, tout comme le petit flash jaune/noir au début.

A RenderFlex overflowed by 99804 pixels on the bottom.
The relevant error-causing widget was: 
  Column file:///E:/FlutterProjects/myproject/lib/builders/CustomPageView.dart:47:26

Voici le code. La ligne 47 est la première child: column .

class _CustomPageViewState extends State<CustomPageView> {
  Widget build(context) {
    return PageView.builder(
      itemCount: widget.speakcrafts.length,
      itemBuilder: (context, int currentIndex) {
        return createViewItem(widget.speakcrafts[currentIndex], context);
      },
    );
  }

    Widget createViewItem(SpeakContent speakcraft, BuildContext context) {
          var contsize = MediaQuery.of(context).size.width * 0.60;
        var contHeightsize = MediaQuery.of(context).size.height;

    return Stack(
  children: <Widget>[
    Container(
      color: Colors.black12,
      child: Column(
        children: <Widget>[
          Padding(
            padding: const EdgeInsets.all(20.0),
            child: Row(
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                Image.network(
                  speakcraft.gavatar,
                  height: contsize,
                  width: contsize,
                ),
                PlayerWidget2(url: kUrl),
              ],
            ),
          ),
        ],
      ),
    ),
  ],
);

Et voici le code d'erreur complet avec la suggestion de ConstrainedBox de chunhunghan ;

A RenderFlex overflowed by 99325 pixels on the right.
The relevant error-causing widget was: 
  Row file:///E:/FlutterProjects/speakoholic/lib/builders/CustomPageView.dart:121:25
The specific RenderFlex in question is: RenderFlex#d5393 relayoutBoundary=up8 OVERFLOWING
  parentData: offset=Offset(0.0, 556.9); flex=null; fit=null (can use size)
  constraints: BoxConstraints(0.0<=w<=674.9, 0.0<=h<=Infinity)
  size: Size(674.9, 100000.0)
  direction: horizontal
  mainAxisAlignment: center
  mainAxisSize: max
  crossAxisAlignment: center
  textDirection: ltr
  verticalDirection: down
  child 1: RenderErrorBox#d3900
    parentData: offset=Offset(0.0, 0.0); flex=null; fit=null (can use size)
    constraints: BoxConstraints(unconstrained)
    size: Size(100000.0, 100000.0)

 Exception caught by rendering library 
A RenderFlex overflowed by 100385 pixels on the bottom.
The relevant error-causing widget was: 
  Column file:///E:/FlutterProjects/speakoholic/lib/builders/CustomPageView.dart:49:28

2voto

Meggy Points 71

Il s'avère que j'ai dû suivre l'erreur plus loin dans l'arbre des widgets de ce widget ;

child: PlayerWidget2(url: kUrl))

Sur PlayerWidget2 était un chemin qui était nul avant un PageViewBuilder en cours de construction. Cela a provoqué une erreur de chemin nul qui a conduit à l'erreur de renderflex. Une fois construit, le null a été rempli avec un chemin. Donc, afin de se débarrasser de ces erreurs, j'ai simplement ajouté un chemin par défaut au widget pour remplir le null jusqu'à ce que le PageViewBuilder soit construit.

1voto

Vasanth Vadivel Points 124

Vous pouvez envelopper tout le contenu de votre corps comme un enfant de SingleChildScrollView SinglechildScrollView qui peut vous aider à surmonter ce problème, ou vous pouvez également utiliser listview qui peut organiser la liste des widgets correctement. ListView

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