Flutter 如何修复给定无限高的水平视口

Flutter 如何修复给定无限高的水平视口,flutter,Flutter,错误:视口在横轴上展开以填充其容器,并约束其子视口以匹配其在横轴上的范围。在本例中,为水平视口提供了无限的垂直空间来展开 当我用容器包装TabBarView并提供特定高度时,这是没有错误的 但是我需要容器根据ListViewBuilder进行扩展 导入“包装:颤振/材料.省道”; 类classA扩展了StatefulWidget{ @凌驾 _classAState createState(); } 类_classAState扩展状态{ @凌驾 小部件构建(构建上下文){ 返回容器( 子:列( c

错误:视口在横轴上展开以填充其容器,并约束其子视口以匹配其在横轴上的范围。在本例中,为水平视口提供了无限的垂直空间来展开

  • 当我用容器包装TabBarView并提供特定高度时,这是没有错误的
  • 但是我需要容器根据ListViewBuilder进行扩展
  • 导入“包装:颤振/材料.省道”;
    类classA扩展了StatefulWidget{
    @凌驾
    _classAState createState();
    }
    类_classAState扩展状态{
    @凌驾
    小部件构建(构建上下文){
    返回容器(
    子:列(
    crossAxisAlignment:crossAxisAlignment.stretch,
    儿童:[
    划船(
    儿童:[
    容器(
    边距:所有边集(kDefaultPadding),
    身高:40,
    宽度:MediaQuery.of(context).size.width-80,
    孩子:TabBar(
    控制器:\ tab控制器,
    labelColor:Colors.white,
    指标化:TabBarIndicatorSize.tab,
    未选择的标签颜色:Colors.black,
    指示灯:盒子装饰(颜色:K二次色),
    选项卡:[文本('A')、文本('B')、文本('C')],
    ),
    )
    ],
    ),
    选项卡视图(控制器:\选项卡控制器,子项:[
    ListView.builder(
    控制器:ScrollController(),
    收缩膜:对,
    滚动方向:轴垂直,
    物品计数:7,
    itemBuilder:(上下文,索引)=>\u ACard()),
    ListView.builder(
    控制器:ScrollController(),
    收缩膜:对,
    滚动方向:轴垂直,
    物品计数:5,
    itemBuilder:(上下文,索引)=>\u BCard()),
    ListView.builder(
    控制器:ScrollController(),
    收缩膜:对,
    滚动方向:轴垂直,
    物品计数:8,
    itemBuilder:(上下文,索引)=>\u CCard()
    ])
    ]));
    }
    }
    
    它使用CustomScrollView和SliverList

    这是我的密码

    return CustomScrollView(
      slivers: <Widget>[
        StreamBuilder<QuerySnapshot>(
            stream: Firestore.instance.collection(_id).snapshots(),
            builder:
                (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) =>
                    SliverList(
                        delegate: SliverChildBuilderDelegate(
                      (context, index) =>
                          customCardList(snapshot.data.documents, index),
                      childCount:
                          snapshot.hasData ? snapshot.data.documents.length : 0,
                    ))),
        StreamBuilder<QuerySnapshot>(
            stream: Firestore.instance.collection('festival$_id').snapshots(),
            builder:
                (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) =>
                    SliverList(
                        delegate: SliverChildBuilderDelegate(
                      (context, index) =>
                          customMyCardList(snapshot.data.documents, index),
                      childCount:
                          snapshot.hasData ? snapshot.data.documents.length : 0,
                    ))),
      ],
    );
    
    返回自定义滚动视图(
    条子:[
    StreamBuilder(
    流:Firestore.instance.collection(_id).snapshots(),
    建设者:
    (BuildContext上下文,异步快照)=>
    银表(
    代表:SliverChildBuilderDelegate(
    (上下文、索引)=>
    customCardList(快照、数据、文档、索引),
    儿童人数:
    snapshot.hasData?snapshot.data.documents.length:0,
    ))),
    StreamBuilder(
    流:Firestore.instance.collection('festival$\u id').snapshots(),
    建设者:
    (BuildContext上下文,异步快照)=>
    银表(
    代表:SliverChildBuilderDelegate(
    (上下文、索引)=>
    customMyCardList(快照、数据、文档、索引),
    儿童人数:
    snapshot.hasData?snapshot.data.documents.length:0,
    ))),
    ],
    );
    
    他们尝试用
    Flex()
    而不是容器包装TabBarView

    Flex(
      fit: Flexfit.loose,
      child: TabBarView(
        //etc
      ),),
    

    同样的,例外请给我一分钟,我会在我的电脑上查看machine@RahulKavati你有一个回购协议,我可以从中得到代码吗?我们使用的widget是灵活的,可以使用fit。错误:RenderFlex子项具有非零flex,但传入的高度约束是无限制的。我无法真正让您的代码在我的计算机上按原样运行。通常要求您提供一个最小的可复制示例。
    Flex(
      fit: Flexfit.loose,
      child: TabBarView(
        //etc
      ),),