Flutter RenderStack 对象在布局期间被赋予无限大小。如何在堆栈中定位容器?

Flutter RenderStack object was given an infinite size during layout. How to position container inside stack?

我正在尝试将容器放置在堆栈中,但一直收到此消息 exception.How 我可以使用 right:0,top:0 将给定大小的容器放置在堆栈中吗?代码我正在使用如下所示: 我应该对我的代码进行哪些更改才能使其正常工作?

**return SizedBox.fromSize(
            size:Size.fromHeight(300.0),
            child:Container(
                decoration:BoxDecoration(**

                    color:Color(0xFFF3F3F5),
                ),
                child:ListView.builder(
                scrollDirection:Axis.horizontal,
                itemCount:3,
                physics:BouncingScrollPhysics(),
                itemBuilder:(BuildContext context,index){
                    print(10);
                    return Stack(
                        children:<Widget>[
                            Positioned(
                            right:0,
                            top:0,
                            child:Container(
                                margin:EdgeInsets.symmetric(horizontal:15.0),
                                height:80,
                                width:140,

                                decoration:BoxDecoration(
                                    borderRadius:BorderRadius.circular(16.0),
                                    color:Color(0xFFDDE3F0),
                                ),

                            ),),

                        ],
                    );
                }
            ),
            ),


    );

**

您可以通过两种方式解决此问题。

1) 使用 listView 的 shrinkwrap 属性 并将其设置为 true.

shrinkWrap: false,

2) 使用列和扩展。用 Expanded 包裹你的 ListView 并用 Column 包裹 Expanded。

Column->Expanded->ListView.

你应该给 Container 包裹你的 ListView 一个高度。