代码之家  ›  专栏  ›  技术社区  ›  Hasan A Yousef Michael Benjamin

ListView.Builder不工作

  •  3
  • Hasan A Yousef Michael Benjamin  · 技术社区  · 6 年前

    flutter-firebase ListView.builder 显示失败!

    列表视图.builder

    return ListView.builder(
        itemCount: snapshot.data.documents.length,
        padding: const EdgeInsets.only(top: 10.0),
        itemExtent: 25.0,
        itemBuilder: (context, index) {
        DocumentSnapshot ds = snapshot.data.documents[index];
        return Text(" ${ds['name']} ${ds['vote']}");
    });
    

    我的完整代码是:

    import 'package:flutter/material.dart';
    import 'package:cloud_firestore/cloud_firestore.dart';
    
    void main() => runApp(MyApp(
      textInput: Text("Text Widget"),
    ));
    
    class MyApp extends StatefulWidget {
      final Widget textInput;
      MyApp({this.textInput});
    
      @override
      State<StatefulWidget> createState() => MyAppState();
    }
    
    class MyAppState extends State<MyApp> {
      bool checkBoxValue = false;
      @override
      Widget build(BuildContext ctxt) {
        return new MaterialApp(
          home: SafeArea(
            child: Scaffold(
                body: new Center(
                    child: new Column(
                      children: <Widget>[
                        widget.textInput,
                        Checkbox(
                            value: checkBoxValue,
                            onChanged: (bool newValue){
                              setState(() {
                                checkBoxValue = newValue;
                              });
                            }
                        ),
                        StreamBuilder(
                            stream: Firestore.instance.collection('baby').snapshots(),
                            builder: (context, snapshot) {
                              if (!snapshot.hasData) return const Text('Loading...');
    
                               //   DocumentSnapshot ds = snapshot.data.documents[0];
                               //   return new Text(" ${ds['name']} ${ds['vote']}");
    
                              // When i try to replace the above code by the below it fails!
                                   return ListView.builder(
                                    itemCount: snapshot.data.documents.length,
                                    padding: const EdgeInsets.only(top: 10.0),
                                    itemExtent: 25.0,
                                    itemBuilder: (context, index) {
                                    DocumentSnapshot ds = snapshot.data.documents[index];
                                    return Text(" ${ds['name']} ${ds['vote']}");
                                  });
                               // End of the ListView builder that fails!
    
                            }),
                      ],
                    ))),
          ),
        );
      }
    }
    

    i/flutter(9119):视区在滚动方向展开以填充其容器。在这种情况下,垂直 i/flutter(9119):当可滚动小部件嵌套在另一个可滚动小部件中时,通常会发生这种情况。 i/flutter(9119):视区高度与子视区高度之和。 i/flutter(9119):3_renderproxybox&renderbox&renderbox&renderbjectwithchildmixin&renderproxyboxmixin.perform布局(包装:flutter/src/rendering/proxy ou box.dart:109:13) i/flutter(9119):5_renderproxybox&renderbox&renderbox&renderbojectwithchildmixin&renderproxyboxmixin.perform布局(包装:flutter/src/rendering/proxy ou box.dart:109:13) i/flutter(9119):7_renderproxybox&renderbox&renderbox&renderbjectwithchildmixin&renderproxyboxmixin.perform布局(包装:flutter/src/rendering/proxy ou box.dart:109:13) i/flutter(9119):9_renderproxybox&renderbox&renderbox&renderbjectwithchildmixin&renderproxyboxmixin.perform布局(包装:flutter/src/rendering/proxy ou box.dart:109:13) i/flutter(9119):11_renderproxybox&renderbox&renderbox&renderbojectwithchildmixin&renderproxyboxmixin.perform布局(包装:flutter/src/rendering/proxy ou box.dart:109:13) i/flutter(9119):13_renderproxybox&renderbox&renderbox&renderbojectwithchildmixin&renderproxyboxmixin.perform布局(包装:flutter/src/rendering/proxy ou box.dart:109:13) i/flutter(9119):15_renderproxybox&renderbox&renderbox&renderbojectwithchildmixin&renderproxyboxmixin.perform布局(包装:flutter/src/rendering/proxy ou box.dart:109:13) i/flutter(9119):19 renderflex.performlayout(包装:flutter/src/rendering/flex.dart:738:15) i/flutter(9119):21 renderpositionedbox.performlayout(package:flutter/src/rendering/shifted box.dart:381:13) i/flutter(9119):23 multichildlayoutelegate.layoutchild(软件包:flutter/src/rendering/custom-layout.dart:141:11) i/flutter(9119):25多芯片布局外推。uCallPerformLayout(软件包:flutter/src/rendering/custom layout.dart:211:7) i/flutter(9119):27 renderbject.layout(包装:flutter/src/rendering/object.dart:1570:7) i/flutter(9119):29 renderbject.layout(包装:flutter/src/rendering/object.dart:1570:7) i/flutter(9119):31_rendercustomclip.performlayout(package:flutter/src/rendering/proxy ou box.dart:1143:11) i/flutter(9119):33 renderpadding.performlayout(package:flutter/src/rendering/shifted box.dart:199:11) i/flutter(9119):35_renderproxybox&renderbox&renderbox&renderbojectwithchildmixin&renderproxyboxmixin.perform布局(包装:flutter/src/rendering/proxy ou box.dart:109:13) i/flutter(9119):37_renderproxybox&renderbox&renderbox&renderbjectwithchildmixin&renderproxyboxmixin.perform布局(包装:flutter/src/rendering/proxy ou box.dart:109:13) i/flutter(9119):39_renderproxybox&renderbox&renderbox&renderbojectwithchildmixin&renderproxyboxmixin.perform布局(包装:flutter/src/rendering/proxy ou box.dart:109:13) i/flutter(9119):41_renderproxybox&renderbox&renderbox&renderbojectwithchildmixin&renderproxyboxmixin.perform布局(包装:flutter/src/rendering/proxy ou box.dart:109:13) i/flutter(9119):49_renderproxybox&renderbox&renderbox&renderbojectwithchildmixin&renderproxyboxmixin.perform布局(包装:flutter/src/rendering/proxy ou box.dart:109:13) i/flutter(9119):53 renderbject.layout(包装:flutter/src/rendering/object.dart:1570:7) i/flutter(9119):55 renderbject.layout(包装:flutter/src/rendering/object.dart:1570:7) i/flutter(9119):58_renderproxybox&renderbox&renderbox&renderbjectwithchildmixin&renderproxyboxmixin.perform布局(包装:flutter/src/rendering/proxy ou box.dart:109:13) i/flutter(9119):64_renderproxybox&renderbox&renderbox&renderbjectwithchildmixin&renderproxyboxmixin.perform布局(包装:flutter/src/rendering/proxy ou box.dart:109:13) i/flutter(9119):69_widgetsflutterbinding&bindingbase&gesturebinding&servicesbinding&schedulerbinding&paintingbinding&renderbinding.drawframe(包装:flutter/src/renderbinding/binding.dart:270:19) i/flutter(9119):71_widgetsflutterbinding&bindingbase&gesturebinding&servicesbinding&schedulerbinding&paintingbinding&renderbinding._handlepersistentframecallback(package:flutter/src/rendering/binding.dart:208:5) i/flutter(9119):73_widgetsflutterbinding&bindingbase&gesturebinding&servicesbinding&scheduler binding.handledrawframe(套装:flutter/src/scheduler/binding.dart:930:9) i/flutter(9119):76_timer._runtimers(dart:隔离/运行时/libtimer_impl.dart:382:19) i/flutter(9119):78 rawreceiveportimpl.handlemessage(dart:isolate/runtime/libisolate_patch.dart:165:12) I/颤振(9119): I/Flutter(9119):渲染视图端口A2532需求-布局需求-油漆 i/flutter(9119):“手势语义rawgesturedetector-[labeledglobalkey 08fb7] I/Flutter(9119):通知列表器 I/Flutter(9119):可滚动状态,AlwaysCrollableScrollPhysics->ClampingCrollPhysics,IdleScrollActivity d36b9, I/颤振(9119):锚:0.0 I/Flutter(9119):renderPreatboundary 8C403需求-布局需求-油漆 I/颤振(9119): i/flutter(9119):引发了另一个异常:renderbox未布局:renderignorepointer cfad6 relayoutboundary=up10 needs-paint i/flutter(9119):引发了另一个异常:renderBox未布局:renderInterlistener 0da92 relayoutboundary=up8 needs-paint I/Flutter(9119):引发了另一个异常:renderBox未布局:_renderExcludesCrollSemantics AD008 relayoutboundary=up6 needs-paint 在1363毫秒内重新加载394个图书馆中的1个。

    2 回复  |  直到 6 年前
        1
  •  4
  •   Rémi Rousselet    6 年前

    包装您的 StreamBuilder Expanded Column

        2
  •  0
  •   Hasan A Yousef Michael Benjamin    6 年前

       return ListView.builder(
             itemExtent: 25.0 . // this made the limitation
    )
    

    我应该把 itemExtent