Flutter listview中的颤振包裹小部件

Flutter listview中的颤振包裹小部件,flutter,Flutter,我想在listview中换行,这样向下滚动时,搜索栏就会消失。 我试过这样做 new ListView( shrinkWrap: true, children: <Widget>[ new Column( mainAxisSize: MainAxisSize.min, children: <Widget>[ new GestureDetector( chi

我想在
listview
中换行,这样向下滚动时,搜索栏就会消失。 我试过这样做

new ListView(
   shrinkWrap: true,
    children: <Widget>[
       new Column(
         mainAxisSize: MainAxisSize.min,
          children: <Widget>[
            new GestureDetector(
              child: new Container(
                color: Colors.grey[300],
                child: new Padding(
                  padding: const EdgeInsets.all(8.0),
                  child: new Card(
                    margin: const EdgeInsets.fromLTRB(4.0, 0.0, 4.0, 0.0),
                    child: new ListTile(
                      leading: new Icon(Icons.search),
                      title: new Text('Search',
                          style: new TextStyle(color: Colors.grey[600])),
                    ),
                  ),
                ),
              ),
              onTap: () {
                print(
                    'tapped');
              },
            ),
            new GridView.builder(
              itemCount: items.length,
              gridDelegate: new SliverGridDelegateWithFixedCrossAxisCount(
                  crossAxisCount: 2),
              itemBuilder: (BuildContext context, int index) {
                return new GestureDetector(
                  child: new Card(
                    elevation: 5.0,
                    child: new Container(
                      decoration: new BoxDecoration(
                        image: new DecorationImage(
                          fit: BoxFit.cover,
                          image: NetworkImage(
                              'https://images.unsplash.com/photo-1533514114760-4389f572ae26?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=4ada6181447db788f0fc94d5d2e35c63&auto=format&fit=crop&w=500&q=60'),
                        ),
                      ),
                    ),
                  ),
                  onTap: () {
                    showDialog(
                      barrierDismissible: false,
                      context: context,
                      child: new AlertDialog(
                        title: new Column(
                          children: <Widget>[
                            new Text("GridView"),
                            new Icon(
                              Icons.favorite,
                              color: Colors.green,
                            ),
                          ],
                        ),
                        content: new Text("Selected Item $index"),
                        actions: <Widget>[
                          new FlatButton(
                              onPressed: () {
                                Navigator.of(context).pop();
                              },
                              child: new Text("OK"))
                        ],
                      ),
                    );
                  },
                );
              },
            ),
          ],
        ),
    ],
  ),
新建列表视图(
收缩膜:对,
儿童:[
新专栏(
mainAxisSize:mainAxisSize.min,
儿童:[
新手势检测器(
子容器:新容器(
颜色:颜色。灰色[300],
孩子:新的填充物(
填充:常数边集全部(8.0),
孩子:新卡(
边距:LTRB(4.0,0.0,4.0,0.0)的常数边集,
孩子:新的ListTile(
前导:新图标(Icons.search),
标题:新文本('搜索',
样式:新文本样式(颜色:Colors.grey[600]),
),
),
),
),
onTap:(){
印刷品(
"抽头";;
},
),
新建GridView.builder(
itemCount:items.length,
gridDelegate:新SliverGridDelegateWithFixedCrossAxisCount(
交叉轴计数:2),
itemBuilder:(构建上下文,int索引){
返回新的手势检测器(
孩子:新卡(
标高:5.0,
子容器:新容器(
装饰:新盒子装饰(
图片:新装饰图片(
适合:BoxFit.cover,
图片:NetworkImage(
'https://images.unsplash.com/photo-1533514114760-4389f572ae26?ixlib=rb-0.3.5&ixid=Eyjhchbawqiojeymdd9&s=4ada6181447db788f0fc94d5d2e35c63&auto=format&fit=crop&w=500&q=60’,
),
),
),
),
onTap:(){
显示对话框(
禁止:错误,
上下文:上下文,
子:新建警报对话框(
标题:新专栏(
儿童:[
新文本(“GridView”),
新图标(
我的最爱,
颜色:颜色。绿色,
),
],
),
内容:新文本(“选定项$index”),
行动:[
新扁平按钮(
已按下:(){
Navigator.of(context.pop();
},
子项:新文本(“确定”)
],
),
);
},
);
},
),
],
),
],
),
但列表视图是不可见的,控制台说

垂直视口被赋予无限高。视口在视图中展开 滚动方向以填充其容器

我尝试插入
展开的
收缩包装
,但仍然没有显示任何内容。
有人知道如何解决这个问题吗?

搜索字段小部件不需要列,直接使用即可。 从父列表视图中删除
包覆面提取
。 将包覆面提取添加到GridView中,并指定物理:

    new ListView(children: <Widget>[
              new GestureDetector(
                  child: new Container(
                    color: Colors.grey[300],
                    child: new Padding(
                      padding: const EdgeInsets.all(8.0),
                      child: new Card(
                        margin: const EdgeInsets.fromLTRB(4.0, 0.0, 4.0, 0.0),
                        child: new ListTile(
              leading: new Icon(Icons.search),
              title: new Text('Search',
                  style: new TextStyle(color: Colors.grey[600])),
                        ),
                      ),
                    ),
                  ),
                  onTap: () {
                    print('tapped');
                  },
                ),
              GridView.builder(
                shrinkWrap: true,
                physics: NeverScrollableScrollPhysics(),
                itemCount: items.length,
                gridDelegate: new SliverGridDelegateWithFixedCrossAxisCount(
                    crossAxisCount: 2),
                itemBuilder: (BuildContext context, int index) {
                  return new GestureDetector(
                    child: new Card(
                      elevation: 5.0,
                      child: new Container(
                        decoration: new BoxDecoration(
                          image: new DecorationImage(
                            fit: BoxFit.cover,
                            image: NetworkImage(
                                'https://images.unsplash.com/photo-1533514114760-4389f572ae26?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=4ada6181447db788f0fc94d5d2e35c63&auto=format&fit=crop&w=500&q=60'),
                          ),
                        ),
                      ),
                    ),
                    onTap: () {
                      showDialog(
                        barrierDismissible: false,
                        context: context,
                        child: new AlertDialog(
                          title: new Column(
                            children: <Widget>[
                              new Text("GridView"),
                              new Icon(
                                Icons.favorite,
                                color: Colors.green,
                              ),
                            ],
                          ),
                          content: new Text("Selected Item $index"),
                          actions: <Widget>[
                            new FlatButton(
                                onPressed: () {
                                  Navigator.of(context).pop();
                                },
                                child: new Text("OK"))
                          ],
                        ),
                      );
                    },
                  );
                },
              )
            ]
            )
新建列表视图(子项:[
新手势检测器(
子容器:新容器(
颜色:颜色。灰色[300],
孩子:新的填充物(
填充:常数边集全部(8.0),
孩子:新卡(
边距:LTRB(4.0,0.0,4.0,0.0)的常数边集,
孩子:新的ListTile(
前导:新图标(Icons.search),
标题:新文本('搜索',
样式:新文本样式(颜色:Colors.grey[600]),
),
),
),
),
onTap:(){
打印(‘点击’);
},
),
GridView.builder(
收缩膜:对,
物理学:NeverscrollableScroll物理学(),
itemCount:items.length,
gridDelegate:新SliverGridDelegateWithFixedCrossAxisCount(
交叉轴计数:2),
itemBuilder:(构建上下文,int索引){
返回新的手势检测器(
孩子:新卡(
标高:5.0,
子容器:新容器(
装饰:新盒子装饰(
图片:新装饰图片(
适合:BoxFit.cover,
图片:NetworkImage(
'https://images.unsplash.com/photo-1533514114760-4389f572ae26?ixlib=rb-0.3.5&ixid=Eyjhchbawqiojeymdd9&s=4ada6181447db788f0fc94d5d2e35c63&auto=format&fit=crop&w=500&q=60’,
),
),
),
),
onTap:(){
显示对话框(
禁止:错误,
上下文:上下文,
子:新建警报对话框(
标题:新专栏(
儿童:[
新文本(“GridView”),
新图标(
我的最爱,
颜色:颜色。绿色,
),
],
),
内容:新文本(“选定项$index”),
行动:[