首页 > 解决方案 > 不正确使用父小部件?

问题描述

在此处输入图像描述这是脚手架的主体,我真的不明白为什么我会收到这个错误?我在高度和宽度上添加了约束。仍然没有得到错误。身体的顺序对我来说似乎是合乎逻辑的?

 body:Center(child:SingleChildScrollView
      (child: Column(
        children:_list1
        .map((element)=>
        Container(
          margin: EdgeInsets.all(9.0),
           constraints: new BoxConstraints.expand(height: 300.0),
           decoration: new BoxDecoration(
           border: new Border.all(color: Colors.blueAccent),
           borderRadius: BorderRadius.horizontal( left:Radius.circular(30.0) ,right:Radius.circular(30.0) ),
           image: new DecorationImage(
           image: new AssetImage('assets/food1.jpg'),
           fit: BoxFit.cover,),),
           padding: EdgeInsets.only(bottom: 20.0),

      child: Stack(
        children:<Widget>[
           Positioned(left: 0.0,bottom: 30.0,child:  Text(element.name, style: new TextStyle(fontWeight: FontWeight.bold,fontSize: 20.0,)),),

          Positioned(left: 0.0,bottom: 0.0,child:  Text(element.dis,style: new TextStyle(fontWeight: FontWeight.bold,fontSize: 20.0,)),),
          Positioned(right: 0.0,top:0.0,child:Icon(Icons.star)),
          Positioned(right: 200.0,top:0.0,child:Icon(Icons.check)),

        ]
      ),  

        ), 
        ).toList()
              )
       ) )
     );

标签: stackflutter

解决方案


您可以使用ListView代替Center,SingleChildScrollViewColumn.

body: ListView(
        children: _list1
            .map(
              (element) => Container(
                    margin: EdgeInsets.all(9.0),
                    constraints: new BoxConstraints.expand(height: 300.0),
                    decoration: new BoxDecoration(
                      border: new Border.all(color: Colors.blueAccent),
                      borderRadius: BorderRadius.horizontal(
                        left: Radius.circular(30.0),
                        right: Radius.circular(30.0),
                      ),
                      image: new DecorationImage(
                        image: new NetworkImage(
                            'https://images.pexels.com/photos/5317/food-salad-restaurant-person.jpg?auto=compress&cs=tinysrgb&h=350'),
                        fit: BoxFit.cover,
                      ),
                    ),
                    padding: EdgeInsets.only(bottom: 20.0),
                    child: Stack(
                      children: <Widget>[
                        Positioned(
                          left: 0.0,
                          bottom: 30.0,
                          child: Text(
                            element.name,
                            style: new TextStyle(
                              fontWeight: FontWeight.bold,
                              fontSize: 20.0,
                            ),
                          ),
                        ),
                        Positioned(
                          left: 0.0,
                          bottom: 0.0,
                          child: Text(
                            element.dis,
                            style: new TextStyle(
                              fontWeight: FontWeight.bold,
                              fontSize: 20.0,
                            ),
                          ),
                        ),
                        Positioned(
                          right: 0.0,
                          top: 0.0,
                          child: Icon(Icons.star),
                        ),
                        Positioned(
                          right: 200.0,
                          top: 0.0,
                          child: Icon(Icons.check),
                        ),
                      ],
                    ),
                  ),
            )
            .toList(),
      ),

不过,在您的代码Center中似乎没用。


推荐阅读