Flutter 颤振:在列中换行Layoutbuilder和文本时出错

Flutter 颤振:在列中换行Layoutbuilder和文本时出错,flutter,listview,layout,Flutter,Listview,Layout,我现在有一个侧边有字母滚动条的列表视图。我试图在顶部添加一个搜索框,但每当我将某个内容包装到列中时,就会出现错误。 使用当前代码,堆栈内的ListView抛出了垂直视口的无限高度。 当我删除列和文本('TestString')时,我的代码工作正常。我曾尝试在ListView.Builder周围添加一个可扩展文件,但这似乎也无法解决问题 @覆盖 小部件构建(构建上下文){ height=MediaQuery.of(context).size.height; 返回脚手架( appBar:appBar

我现在有一个侧边有字母滚动条的列表视图。我试图在顶部添加一个搜索框,但每当我将某个内容包装到列中时,就会出现错误。 使用当前代码,堆栈内的ListView抛出了垂直视口的无限高度。

当我删除列和文本('TestString')时,我的代码工作正常。我曾尝试在ListView.Builder周围添加一个可扩展文件,但这似乎也无法解决问题

@覆盖
小部件构建(构建上下文){
height=MediaQuery.of(context).size.height;
返回脚手架(
appBar:appBar(
标题:文本(widget.title,
样式:TextStyle(
字体大小:20.0,
颜色:颜色,白色,
fontWeight:fontWeight.bold),
标题:对,
),
正文:专栏(
儿童:[
Text('TestString'),
新布局生成器(
生成器:(上下文、约束){
返回新堆栈(子堆栈:[
//导致当前问题的原因
ListView.builder(
itemCount:exampleList.length,
控制器:_控制器,
itemExtent:\u itemsizeheight,
itemBuilder:(上下文、位置){
返回填充(
填充:仅限常量边集(右:32.0),
孩子:卡片(
孩子:填充(
填充:常数边集全部(16.0),
子:文本(
示例列表[位置],
样式:TextStyle(fontSize:20.0),
),
),
));
},
),
定位(
右:_marginRight,
顶部:_offsetContainer,
子项:_getSpeechBubble()),
对齐(
对齐:alignment.centerRight,
儿童:手势检测器(
onTapDown:(详细信息){
_onTapDown(细节);
},
儿童:手势检测器(
垂直排水日期:_垂直排水日期,
onVerticalDragStart:\u onVerticalDragStart,
垂直排水量:(详情){
设置状态(){
isPressed=false;
});
},
子:容器(
//高度:20.0*26,
颜色:颜色。透明,
子:新列(
mainAxisAlignment:mainAxisAlignment.center,
子项:[……addAll(
新列表。生成(_alphabet.length,
(索引)=>\u getAlphabetItem(索引)),
),
),
),
),
),
),
]);
},
),
],
),
);
}
_getSpeechBubble(){
返回显示
?新演讲泡泡(
nipLocation:nipLocation.对,
孩子:排(
mainAxisSize:mainAxisSize.min,
儿童:[
容器(
宽度:30,
儿童:中心(
子:文本(
“${u text???”${{u alphabet.first}“}”,
样式:TextStyle(
颜色:颜色,白色,
字体大小:18.0,
),
),
),
),
],
),
)
:SizedBox.shrink();
}
估价师?回调(int值){}
_获取字母项目(整数索引){
返回新的扩展(
子容器:新容器(
宽度:40,
身高:20,
对齐:对齐.center,
儿童:新文本(
_字母[索引],
样式:(index==posSelected)
?新的文本样式(fontSize:16,fontWeight:fontWeight.w700)
:新文本样式(fontSize:12,fontWeight:fontWeight.w400),
),
),
);
}

您可以像这样用
Expanded()
包装您的
LayoutBuilder()
,它不会显示错误

return Container(
  child: Column(
    children: [
      Text("Header"),
      Expanded(
        child: ListView.builder(
          itemCount:50,
          itemBuilder: (BuildContext context, int index) {
            return Text("List Item $index");
          },
        ),
      ),
      Text("Footer"),
    ],
  ),
);
你可以试试代码