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