简体   繁体   English

Flutter dart 错误(相关的导致错误的小部件是...)

[英]Flutter dart error (The relevant error-causing widget was ...)

Im getting multiple errors because of my widget's size or datas ( i guess).由于我的小部件的大小或数据(我猜),我收到了多个错误。 I tried to wrote this part all over again but it didn't work.我试图重新写这部分,但没有成功。 Is it because of widgets size or something else?是因为小部件大小还是其他原因?

 @override
 Widget build(BuildContext context) {
   var questionsOf = widget.setType(InputPage.topicN);

   CollectionReference contestantsRef =
       FirebaseFirestore.instance.collection('contestants');

   return Scaffold(
     backgroundColor: Colors.blue,
     appBar: AppBar(
       centerTitle: true,
     ),
     body: SafeArea(
         child: Column(
       children: <Widget>[
         Flexible(
             child: Container(
           height: 100,
           child: iconCreate(),
         )),
         Container(
           child: StreamBuilder<QuerySnapshot>(
             stream: contestantsRef.snapshots(),
             builder: (BuildContext context, AsyncSnapshot asyncSnapshot) {
               List<DocumentSnapshot> listOfDocumentSnap =
                   asyncSnapshot.data.docs;

               return ListView.builder(
                 itemBuilder: (context, index) {
                   return Text('${listOfDocumentSnap[index].data()}');
                 },
                 itemCount: listOfDocumentSnap.length,
               );
             },
           ),
         ),
         SizedBox(
           height: 100,
         ),
         Flexible(
           flex: 4,
           child: Container(
             height: 200,
             margin: EdgeInsets.all(20),
             decoration:
                 BoxDecoration(border: Border.all(color: Colors.black)),
             child: Center(
               child: StreamBuilder(
                 stream: questionsOf.snapshots(),
                 builder: (BuildContext context, AsyncSnapshot asyncsnapshot) {
                   String question1 =
                       asyncsnapshot.data.data()['q$questionIndexa']
                           ['q$questionIndexa' + 'Sent'];
                   return Text('$question1');
                 },
               ),
             ),
           ),
         ),
         Flexible(
             flex: 3,
             child: Container(
               child: Column(
                 children: [
                   buildAnswerBox(questionsOf, 1, questionIndexa),
                   SizedBox(
                     height: 10,
                   ),
                   buildAnswerBox(questionsOf, 2, questionIndexa),
                   SizedBox(
                     height: 10,
                   ),
                   buildAnswerBox(questionsOf, 3, questionIndexa),
                   SizedBox(
                     height: 10,
                   ),
                   buildAnswerBox(questionsOf, 4, questionIndexa),
                 ],
               ),
             ))
       ],
     )),
   );
 }

This is the Error part:这是错误部分:

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderCustomPaint#60178 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
package:flutter/…/rendering/box.dart:1
Failed assertion: line 1929 pos 12: 'hasSize'

The relevant error-causing widget was
ListView
lib\guess_page.dart:74


════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderRepaintBoundary#c207a relayoutBoundary=up3 NEEDS-PAINT
'package:flutter/src/rendering/box.dart':
package:flutter/…/rendering/box.dart:1
Failed assertion: line 1929 pos 12: 'hasSize'

The relevant error-causing widget was
Column
lib\guess_page.dart:60
═══════════════════════════════

After all i get is a flat blue screen like this毕竟我得到的是这样的平面蓝屏

在此处输入图像描述

The things i tried.我试过的东西。 Firstly i thought it's because of stream builder and i tried to change stream builder and listview part but it didn't work.首先,我认为这是因为 stream 构建器,我尝试更改 stream 构建器和 listview 部分,但它没有用。 Than i wrap widgets with expanded and flexible (given flex) but it didn'T work too.比我用扩展和灵活(给定 flex)包装小部件,但它也不起作用。

add shrinkWrap property to true in ListView.builder like below在 ListView.builder 中将 shrinkWrap 属性添加为 true,如下所示

 return ListView.builder(
             shrinkWrap:true
             itemBuilder: (context, index) {
               return Text('${listOfDocumentSnap[index].data()}');
             },
             itemCount: listOfDocumentSnap.length,
           );

add this property to your listview.builder physics: const BouncingScrollPhysics(),将此属性添加到您的 listview.builder 物理: const BouncingScrollPhysics(),

use these properties to your ListView将这些属性用于您的 ListView

shrinkWrap: true,
physics: BouncingScrollPhysics(),

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Flutter 导致错误的相关小部件是 Scaffold lib\main.dart:14 - Flutter The relevant error-causing widget was Scaffold lib\main.dart:14 flutter 错误,相关的导致错误的小部件是 Scaffold - flutter error , The relevant error-causing widget was Scaffold flutter layout, Listview builder 导致错误的相关小部件是:ListView - flutter layout, Listview builder The relevant error-causing widget was: ListView 相关的导致错误的小部件是:Scaffold - The relevant error-causing widget was: Scaffold 导致错误的相关小部件是 TextField - The relevant error-causing widget was TextField 相关的导致错误的小部件是 Scaffold - The relevant error-causing widget was Scaffold 导致错误的相关小部件是:FutureBuilder<firebaseapp></firebaseapp> - The relevant error-causing widget was: FutureBuilder<FirebaseApp> 相关的导致错误的小部件是 Container lib\screens\home_screen.dart:18 - The relevant error-causing widget was Container lib\screens\home_screen.dart:18 任何人都可以帮助初学者到 Flutter。 相关的导致错误的小部件是: - Can anyone help Beginner to Flutter. The relevant error-causing widget was: FLUTTER MOBX:构建函数返回 null。 相关的导致错误的小部件是观察者 - FLUTTER MOBX: A build function returned null. The relevant error-causing widget was Observer
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM