【问题标题】:Flutter dart error (The relevant error-causing widget was ...)Flutter dart 错误(相关的导致错误的小部件是...)
【发布时间】:2021-12-28 13:54:36
【问题描述】:

由于我的小部件的大小或数据(我猜),我遇到了多个错误。 我试图重新写这部分,但没有成功。 是因为小部件的大小还是其他原因?

 @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),
                 ],
               ),
             ))
       ],
     )),
   );
 }

这是错误部分:

════════ 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
═══════════════════════════════

毕竟我得到的是这样的平面蓝屏

我尝试过的东西。 首先,我认为这是因为流构建器,我尝试更改流构建器和列表视图部分,但它没有用。 比我用扩展和灵活(给定 flex)包装小部件,但它也不起作用。

【问题讨论】:

    标签: flutter dart visual-studio-code widget


    【解决方案1】:

    在 ListView.builder 中添加 shrinkWrap 属性为 true,如下所示

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

    【讨论】:

    • 成功了。非常感谢 。但现在我的内容溢出到底部。像这样hizliresim.com/elikoep
    • 用 SingleChildScrollView 包裹你的专栏
    • 非常感谢
    猜你喜欢
    • 2021-12-29
    • 2021-01-30
    • 2022-01-20
    • 1970-01-01
    • 2021-11-26
    • 1970-01-01
    • 2021-12-22
    • 2021-03-03
    • 2020-06-16
    相关资源
    最近更新 更多