flutter - 列中的水平 ListView

标签 flutter dart

我试图将具有水平滚动方向的 ListView 放入列中。 我已经尝试将 ListView 包装成灵活的和扩展的小部件,但没有任何效果。 我注意到几个线程,但没有任何帮助: 4 Horizontal Listviews in a Scrollable Column in FLutter Horizontal ListView 始终发生相同的异常。

这是我的构建方法:

  @override
  Widget build(BuildContext context) {
    return Container(
      decoration: BoxDecoration(color: Colors.grey.shade100),
      child: Scaffold(
        body: NestedScrollView(
          controller: _scrollController,
          headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) {
            return [
              SliverAppBar(
                expandedHeight: 10.h,
                centerTitle: true,
                floating: false,
                pinned: true,
                shape: RoundedRectangleBorder(
                    borderRadius: BorderRadius.only(
                        bottomLeft: Radius.circular(20),
                        bottomRight: Radius.circular(40))),
                backgroundColor: kPrimaryColor,
                flexibleSpace: FlexibleSpaceBar.createSettings(
                  child: FlexibleSpaceBar(
                    titlePadding: EdgeInsets.only(left: 0),
                    centerTitle: false,
                    title: Container(
                      width: 70.w,
                      child: Image.asset(
                        'assets/images/app_logo.png',
                      ),
                      decoration: BoxDecoration(),
                    ),
                    background: Container(
                      height: 10.h,
                      width: 100.w,
                      decoration: BoxDecoration(
                        color: kPrimaryColor,
                        borderRadius: BorderRadius.only(
                            bottomLeft: Radius.circular(20),
                            bottomRight: Radius.circular(40)),
                      ),
                    ),
                  ),
                  currentExtent: currentExtent,
                  maxExtent: maxExtent,
                ),
              ),
            ];
          },
          body: Consumer<HomeModel>(
            builder: (_, provider, a) {
              return Column(
                children: [
                  Container(
                    width: 100.w,
                    child: SingleChildScrollView(
                      scrollDirection: Axis.horizontal,
                      child: Wrap(
                        spacing: 1.w,
                        children: [
                          SizedBox(
                            width: 0.1.h,
                          ),
                          for (int i = 0;
                              i < provider.categoryChips.length;
                              i++)
                            _buildCategoryFilterChip(i, provider),
                          SizedBox(
                            width: 0.1.h,
                          ),
                        ],
                      ),
                    ),
                  ),
                  /************************************************************
                   * This following ListView throws the exception. ************
                   ************************************************************/
                  ListView.separated(
                    scrollDirection: Axis.horizontal,
                    shrinkWrap: true,
                    itemCount: 20,
                    separatorBuilder: (_, __) => const Divider(),
                    itemBuilder: (context, int index) {
                      return ListTile(
                        title: Text('Item at $index'),
                      );
                    },
                  ),
                ],
              );
            },
          ),
        ),
      ),
    );
  }

出现以下错误:

======== Exception caught by rendering library =====================================================
The following assertion was thrown during performLayout():
RenderBox was not laid out: RenderRepaintBoundary#1d5ca relayoutBoundary=up1 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 1929 pos 12: 'hasSize'


Either the assertion indicates an error in the framework itself, or we should provide substantially more information in this error message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on GitHub:
  https://github.com/flutter/flutter/issues/new?template=2_bug.md

The relevant error-causing widget was: 
  Column Column:file:///C:/Users/mm/StudioProjects/core/lib/ui/screens/_central/tabs/home/home_tab.dart:128:22
When the exception was thrown, this was the stack: 
#2      RenderBox.size (package:flutter/src/rendering/box.dart:1929:12)
#3      ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:57:18)
#4      RenderFlex._computeSizes (package:flutter/src/rendering/flex.dart:829:43)
#5      RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:931:32)
#6      RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#7      RenderSliverFillRemainingWithScrollable.performLayout (package:flutter/src/rendering/sliver_fill.dart:92:14)
#8      RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#9      RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:510:13)
#10     RenderViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1580:12)
#11     RenderViewport.performLayout (package:flutter/src/rendering/viewport.dart:1489:20)
#12     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#13     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#14     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#15     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#16     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#17     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#18     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#19     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#20     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#21     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#22     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#23     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#24     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#25     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#26     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#27     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#28     RenderCustomPaint.performLayout (package:flutter/src/rendering/custom_paint.dart:545:11)
#29     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#30     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#31     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#32     MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:171:12)
#33     _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:1097:7)
#34     MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:240:7)
#35     RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:404:14)
#36     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#37     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#38     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#39     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#40     _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1388:11)
#41     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#42     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#43     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#44     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#45     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#46     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#47     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#48     RenderSliverFixedExtentBoxAdaptor.performLayout (package:flutter/src/rendering/sliver_fixed_extent_list.dart:240:19)
#49     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#50     RenderSliverEdgeInsetsPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:137:12)
#51     _RenderSliverFractionalPadding.performLayout (package:flutter/src/widgets/sliver_fill.dart:167:11)
#52     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#53     RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:510:13)
#54     RenderViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1580:12)
#55     RenderViewport.performLayout (package:flutter/src/rendering/viewport.dart:1489:20)
#56     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#57     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#58     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#59     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#60     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#61     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#62     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#63     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#64     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#65     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#66     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#67     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#68     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#69     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#70     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#71     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#72     RenderCustomPaint.performLayout (package:flutter/src/rendering/custom_paint.dart:545:11)
#73     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#74     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#75     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#76     MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:171:12)
#77     _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:1097:7)
#78     MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:240:7)
#79     RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:404:14)
#80     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#81     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#82     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#83     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#84     _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1388:11)
#85     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#86     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#87     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#88     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#89     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#90     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#91     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#92     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#93     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#94     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#95     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#96     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#97     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#98     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#99     RenderOffstage.performLayout (package:flutter/src/rendering/proxy_box.dart:3422:13)
#100    RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#101    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#102    RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#103    _RenderTheatre.performLayout (package:flutter/src/widgets/overlay.dart:745:15)
#104    RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#105    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#106    RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#107    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#108    RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#109    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#110    RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#111    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#112    RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#113    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#114    RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#115    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#116    RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#117    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#118    RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#119    _RenderLayoutBuilder.performLayout (package:flutter/src/widgets/layout_builder.dart:365:14)
#120    RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#121    _RenderLayoutBuilder.performLayout (package:flutter/src/widgets/layout_builder.dart:365:14)
#122    RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#123    RenderView.performLayout (package:flutter/src/rendering/view.dart:165:14)
#124    RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1713:7)
#125    PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:885:18)
#126    RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:453:19)
#127    WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:883:13)
#128    RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:319:5)
#129    SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1143:15)
#130    SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1080:9)
#131    SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:863:7)
(elided 6 frames from class _AssertionError, class _RawReceivePortImpl, class _Timer, and dart:async-patch)
The following RenderObject was being processed when the exception was fired: RenderFlex#7e932 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...  needs compositing
...  parentData: paintOffset=Offset(0.0, -0.0)
...  constraints: BoxConstraints(w=392.7, h=592.8)
...  size: MISSING
...  direction: vertical
...  mainAxisAlignment: start
...  mainAxisSize: max
...  crossAxisAlignment: center
...  verticalDirection: down
RenderObject: RenderFlex#7e932 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
  needs compositing
  parentData: paintOffset=Offset(0.0, -0.0)
  constraints: BoxConstraints(w=392.7, h=592.8)
  size: MISSING
  direction: vertical
  mainAxisAlignment: start
  mainAxisSize: max
  crossAxisAlignment: center
  verticalDirection: down
...  child 1: RenderConstrainedBox#759ba relayoutBoundary=up1 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...    needs compositing
...    parentData: offset=Offset(0.0, 0.0); flex=null; fit=null (can use size)
...    constraints: BoxConstraints(0.0<=w<=392.7, 0.0<=h<=Infinity)
...    size: Size(392.7, 48.0)
...    additionalConstraints: BoxConstraints(w=392.7, 0.0<=h<=Infinity)
...    child: RenderRepaintBoundary#f3542 relayoutBoundary=up2 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...      needs compositing
...      parentData: <none> (can use size)
...      constraints: BoxConstraints(w=392.7, 0.0<=h<=Infinity)
...      layer: OffsetLayer#f93e7
...        engine layer: OffsetEngineLayer#01287
...        handles: 2
...        offset: Offset(0.0, 140.3)
...      size: Size(392.7, 48.0)
...      metrics: 66.7% useful (2 bad vs 4 good)
...      diagnosis: this is a useful repaint boundary and should be kept
...      child: RenderCustomPaint#a8458 relayoutBoundary=up3 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...        needs compositing
...        parentData: <none> (can use size)
...        constraints: BoxConstraints(w=392.7, 0.0<=h<=Infinity)
...        size: Size(392.7, 48.0)
...        child: RenderRepaintBoundary#adb4d relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...          needs compositing
...          parentData: <none> (can use size)
...          constraints: BoxConstraints(w=392.7, 0.0<=h<=Infinity)
...          layer: OffsetLayer#3354f
...            engine layer: OffsetEngineLayer#1d243
...            handles: 2
...            offset: Offset(0.0, 0.0)
...          size: Size(392.7, 48.0)
...          metrics: 66.7% useful (2 bad vs 4 good)
...          diagnosis: this is a useful repaint boundary and should be kept
...  child 2: RenderRepaintBoundary#1d5ca relayoutBoundary=up1 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...    needs compositing
...    parentData: offset=Offset(0.0, 0.0); flex=null; fit=null (can use size)
...    constraints: BoxConstraints(0.0<=w<=392.7, 0.0<=h<=Infinity)
...    size: MISSING
...    usefulness ratio: no metrics collected yet (never painted)
...    child: RenderCustomPaint#c682d relayoutBoundary=up2 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...      parentData: <none> (can use size)
...      constraints: BoxConstraints(0.0<=w<=392.7, 0.0<=h<=Infinity)
...      size: MISSING
...      child: RenderRepaintBoundary#498de relayoutBoundary=up3 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...        needs compositing
...        parentData: <none> (can use size)
...        constraints: BoxConstraints(0.0<=w<=392.7, 0.0<=h<=Infinity)
...        size: MISSING
...        usefulness ratio: no metrics collected yet (never painted)
...        child: _RenderScrollSemantics#697ae relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...          parentData: <none> (can use size)
...          constraints: BoxConstraints(0.0<=w<=392.7, 0.0<=h<=Infinity)
...          semantic boundary
...          size: MISSING
====================================================================================================

======== Exception caught by rendering library =====================================================
The following assertion was thrown during paint():
RenderBox was not laid out: RenderRepaintBoundary#1d5ca relayoutBoundary=up1 NEEDS-PAINT
'package:flutter/src/rendering/box.dart':
Failed assertion: line 1929 pos 12: 'hasSize'


Either the assertion indicates an error in the framework itself, or we should provide substantially more information in this error message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on GitHub:
  https://github.com/flutter/flutter/issues/new?template=2_bug.md

The relevant error-causing widget was: 
  Column Column:file:///C:/Users/mm/StudioProjects/core/lib/ui/screens/_central/tabs/home/home_tab.dart:128:22
When the exception was thrown, this was the stack: 
#2      RenderBox.size (package:flutter/src/rendering/box.dart:1929:12)
#3      RenderBox.paintBounds (package:flutter/src/rendering/box.dart:2567:41)
#4      PaintingContext._repaintCompositedChild (package:flutter/src/rendering/object.dart:140:56)
#5      PaintingContext.repaintCompositedChild (package:flutter/src/rendering/object.dart:100:5)
#6      PaintingContext._compositeChild (package:flutter/src/rendering/object.dart:206:7)
#7      PaintingContext.paintChild (package:flutter/src/rendering/object.dart:187:7)
#8      RenderBoxContainerDefaultsMixin.defaultPaint (package:flutter/src/rendering/box.dart:2794:15)
#9      RenderFlex.paint (package:flutter/src/rendering/flex.dart:1078:7)
#10     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
#11     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
#12     RenderSliverSingleBoxAdapter.paint (package:flutter/src/rendering/sliver.dart:1779:15)
#13     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
#14     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
#15     RenderViewportBase._paintContents (package:flutter/src/rendering/viewport.dart:660:17)
#16     PaintingContext.pushLayer (package:flutter/src/rendering/object.dart:398:12)
#17     PaintingContext.pushClipRect (package:flutter/src/rendering/object.dart:454:7)
#18     RenderViewportBase.paint (package:flutter/src/rendering/viewport.dart:635:38)
#19     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
#20     PaintingContext._repaintCompositedChild (package:flutter/src/rendering/object.dart:141:11)
#21     PaintingContext.repaintCompositedChild (package:flutter/src/rendering/object.dart:100:5)
#22     PipelineOwner.flushPaint (package:flutter/src/rendering/object.dart:979:29)
#23     RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:455:19)
#24     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:883:13)
#25     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:319:5)
#26     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1143:15)
#27     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1080:9)
#28     SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:863:7)
(elided 6 frames from class _AssertionError, class _RawReceivePortImpl, class _Timer, and dart:async-patch)
The following RenderObject was being processed when the exception was fired: RenderFlex#7e932
...  needs compositing
...  parentData: paintOffset=Offset(0.0, -0.0)
...  constraints: BoxConstraints(w=392.7, h=592.8)
...  size: MISSING
...  direction: vertical
...  mainAxisAlignment: start
...  mainAxisSize: max
...  crossAxisAlignment: center
...  verticalDirection: down
RenderObject: RenderFlex#7e932
  needs compositing
  parentData: paintOffset=Offset(0.0, -0.0)
  constraints: BoxConstraints(w=392.7, h=592.8)
  size: MISSING
  direction: vertical
  mainAxisAlignment: start
  mainAxisSize: max
  crossAxisAlignment: center
  verticalDirection: down
...  child 1: RenderConstrainedBox#759ba relayoutBoundary=up1
...    needs compositing
...    parentData: offset=Offset(0.0, 0.0); flex=null; fit=null (can use size)
...    constraints: BoxConstraints(0.0<=w<=392.7, 0.0<=h<=Infinity)
...    size: Size(392.7, 48.0)
...    additionalConstraints: BoxConstraints(w=392.7, 0.0<=h<=Infinity)
...    child: RenderRepaintBoundary#f3542 relayoutBoundary=up2
...      needs compositing
...      parentData: <none> (can use size)
...      constraints: BoxConstraints(w=392.7, 0.0<=h<=Infinity)
...      layer: OffsetLayer#f93e7
...        engine layer: OffsetEngineLayer#01287
...        handles: 2
...        offset: Offset(0.0, 140.3)
...      size: Size(392.7, 48.0)
...      metrics: 75.0% useful (2 bad vs 6 good)
...      diagnosis: this is a useful repaint boundary and should be kept
...      child: RenderCustomPaint#a8458 relayoutBoundary=up3
...        needs compositing
...        parentData: <none> (can use size)
...        constraints: BoxConstraints(w=392.7, 0.0<=h<=Infinity)
...        size: Size(392.7, 48.0)
...        child: RenderRepaintBoundary#adb4d relayoutBoundary=up4
...          needs compositing
...          parentData: <none> (can use size)
...          constraints: BoxConstraints(w=392.7, 0.0<=h<=Infinity)
...          layer: OffsetLayer#3354f
...            engine layer: OffsetEngineLayer#1d243
...            handles: 2
...            offset: Offset(0.0, 0.0)
...          size: Size(392.7, 48.0)
...          metrics: 75.0% useful (2 bad vs 6 good)
...          diagnosis: this is a useful repaint boundary and should be kept
...  child 2: RenderRepaintBoundary#1d5ca relayoutBoundary=up1 NEEDS-PAINT
...    needs compositing
...    parentData: offset=Offset(0.0, 0.0); flex=null; fit=null (can use size)
...    constraints: BoxConstraints(0.0<=w<=392.7, 0.0<=h<=Infinity)
...    layer: OffsetLayer#33ab1 DETACHED
...      handles: 1
...      offset: Offset(0.0, 0.0)
...    size: MISSING
...    metrics: 0.0% useful (1 bad vs 0 good)
...    diagnosis: insufficient data to draw conclusion (less than five repaints)
...    child: RenderCustomPaint#c682d relayoutBoundary=up2 NEEDS-PAINT
...      needs compositing
...      parentData: <none> (can use size)
...      constraints: BoxConstraints(0.0<=w<=392.7, 0.0<=h<=Infinity)
...      size: MISSING
...      child: RenderRepaintBoundary#498de relayoutBoundary=up3 NEEDS-PAINT
...        needs compositing
...        parentData: <none> (can use size)
...        constraints: BoxConstraints(0.0<=w<=392.7, 0.0<=h<=Infinity)
...        size: MISSING
...        usefulness ratio: no metrics collected yet (never painted)
...        child: _RenderScrollSemantics#697ae relayoutBoundary=up4 NEEDS-PAINT
...          needs compositing
...          parentData: <none> (can use size)
...          constraints: BoxConstraints(0.0<=w<=392.7, 0.0<=h<=Infinity)
...          semantic boundary
...          size: MISSING
====================================================================================================

最佳答案

您需要用 Sizedbox 或 Container 包装 ListView.separated 并提供特定的高度。 flutter 中任何scrollDirection 水平的东西都需要高度。

SizedBox(
         height: 50,
         child: ListView.separated(
         scrollDirection: Axis.horizontal,
         shrinkWrap: true,
         itemCount: 20,
         separatorBuilder: (_, __) => const Divider(),
         itemBuilder: (context, int index) {
                return ListTile(
                  title: Text('Item at $index'),
                 );
                },
               ),
             ),

关于flutter - 列中的水平 ListView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71315665/

相关文章:

flutter - 实现 PreferredSizeWidget 以用作 Appbar

flutter - Flutter软件包URI在软件包的测试中不存在

android - flutter 错误 : 'ScrollController not attached to any scroll views.' on scroll

ios - 使用 XCode 在物理设备上运行 Flutter 时出现未处理的异常 iOS 12.5.5

dart - 如何使用手势检测器以及如何创建可拖动的顶部栏

android - Flutter语音识别应用程序-_platformCallHandler调用speech.onError 2

dart - 创建一部分 flutter 代码作为小部件和变量有什​​么区别

flutter - 如何在 flutter 中使用 url_launcher 捕获 canLaunch 异常?

flutter - 如何从 REST API 中获取数据并显示在 Listview、Flutter 上

html - 如何显示 Dart :html file image in Flutter web?