Dart 颤振-如何使网页浏览&;列表视图?

Dart 颤振-如何使网页浏览&;列表视图?,dart,flutter,Dart,Flutter,我正在尝试使用PageView、PageController和ListView制作一个旋转木马。但它抛出了这个例外 ══╡ 呈现库捕获到异常╞═════════════════════════════════════════════════════════ I/flatter(17678):在performResize()期间抛出了以下断言: I/颤振(17678):水平视口被赋予无限高。 I/Flatter(17678):视口在横轴上展开以填充其容器并约束其子对象以匹配 I/颤振(17678)

我正在尝试使用PageView、PageController和ListView制作一个旋转木马。但它抛出了这个例外

══╡ 呈现库捕获到异常╞═════════════════════════════════════════════════════════ I/flatter(17678):在performResize()期间抛出了以下断言: I/颤振(17678):水平视口被赋予无限高。 I/Flatter(17678):视口在横轴上展开以填充其容器并约束其子对象以匹配 I/颤振(17678):它们在横轴上的范围。在本例中,为水平视口提供了无限量的 I/颤振(17678):要扩展的垂直空间

有人能帮我修一下吗

我想将这个旋转木马添加到充满背景图像、变换类和淡入淡出过渡的堆栈中

  @override
  void initState() {
   super.initState();
    controller = PageController(
     initialPage: 0,
     keepPage: true,
    );

 @override
  Widget build(BuildContext context) {

    return AnimatedBuilder(
        builder: (BuildContext context, Widget child) {
         return Scaffold(
           //BODY
          body: ListView(children: <Widget>[
            new Stack(
              children: <Widget>[
                new AspectRatio(...),
                new Transform(...),
                //THIS IS
                new ListView.builder(
                  itemCount: 3,
                  scrollDirection: Axis.horizontal,
                  padding: EdgeInsets.symmetric(vertical: 16.0),
                  itemBuilder: (BuildContext context, int index) {
                    if (index % 3 == 0) {
                      return _buildCarousel(context, index ~/ 3);
                    } else {
                      return Divider();
                    }
                  },
                ),
            }
         }
   }
   Widget _buildCarousel(BuildContext context, int carouselIndex) {
    return Column(
     mainAxisSize: MainAxisSize.min,
     children: <Widget>[
       Text('Carousel $carouselIndex'),
       SizedBox(
       // you may want to use an aspect ratio here for tablet support
         height: 200.0,
         child: PageView.builder(
        // store this controller in a State to save the carousel scroll position
         controller: PageController(viewportFraction: 0.8),
         itemBuilder: (BuildContext context, int itemIndex) {
           return _buildCarouselItem(context, carouselIndex, itemIndex);
         },
       ),
     )
   ],
 );
  Widget _buildCarouselItem(
    BuildContext context, int carouselIndex, int itemIndex) {
     return Padding(
     padding: EdgeInsets.symmetric(horizontal: 4.0),
       child: Container(
        decoration: BoxDecoration(
        color: Colors.grey,
        borderRadius: BorderRadius.all(Radius.circular(4.0)),
      ),
    ),
  );
@覆盖
void initState(){
super.initState();
控制器=页面控制器(
初始页:0,
基帕奇:是的,
);
@凌驾
小部件构建(构建上下文){
返回动画生成器(
生成器:(BuildContext上下文,小部件子项){
返回脚手架(
//身体
正文:列表视图(子项:[
新堆栈(
儿童:[
新方面(…),
新变换(…),
//这是
新建ListView.builder(
物品计数:3,
滚动方向:轴水平,
填充:边缘组。对称(垂直:16.0),
itemBuilder:(构建上下文,int索引){
如果(索引%3==0){
返回_buildCarousel(上下文,索引~/3);
}否则{
返回分隔符();
}
},
),
}
}
}
Widget_buildCarousel(BuildContext上下文,int carouselIndex){
返回列(
mainAxisSize:mainAxisSize.min,
儿童:[
文本('Carousel$carouselIndex'),
大小盒子(
//您可能希望在此处使用纵横比来支持平板电脑
高度:200.0,
子项:PageView.builder(
//将此控制器存储在保存转盘滚动位置的状态
控制器:页面控制器(视口分数:0.8),
itemBuilder:(BuildContext上下文,int itemIndex){
返回_buildCarouselItem(上下文、carouselIndex、itemIndex);
},
),
)
],
);
Widget_buildCarouselItem(
BuildContext上下文、int carouselandex、int itemIndex){
返回填充(
填充:边缘组。对称(水平:4.0),
子:容器(
装饰:盒子装饰(
颜色:颜色。灰色,
borderRadius:borderRadius.all(半径.圆形(4.0)),
),
),
);

这是完整的代码

正如您可能从错误中猜到的,基本上这意味着由于您没有指定有限的高度,
列表视图
将获得无限的高度。 尝试在
ListView.builder
ListView
中使用
shrinkWrap:true

或者,您也可以尝试将
列表视图
包装在高度有限的
容器
大小框

范例-

Container(
  height: 200.0,
  child: ListView(
   /*Remaining Code*/
  ),
)

您可以尝试在ListView.builder上执行相同的操作。请共享一个工作代码,您的代码中存在许多格式问题…这是完整的代码