我试图在listView中只显示一个卡片小部件.建设者,卡片显示了,但显示了我无法移除的额外空间.

实际上有两个独立的列表视图,一个应该包含一张卡片,另一个应该包含一张卡片列表.

这是我的代码:

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
          title: Text(
        'Fiche du patient',
        style: TextStyle(color: Colors.black),
      )),
      body: Column(
        children: <Widget>[
          Expanded(
            child: ListView.builder(
                itemCount: 1,
                itemBuilder: (BuildContext context, int index) {
                  return Card(
                    color: Colors.white,
                    elevation: 2.0,
                    margin: EdgeInsets.all(10),
                    child: ListTile(
                      contentPadding: EdgeInsets.only(right: 30, left: 36),
                      title: Text('${widget.patient['nomComplet']}'),
                      subtitle: Text('Médecin: ${widget.patient['medecin']}'),
                      trailing: Text('CH: 107'),
                      leading: Icon(Icons.person),
                    ),
                  );
                }),
          ),
          Expanded(
            child: ListView.builder(
              itemCount: docsMesures.length,
              itemBuilder: (BuildContext context, int index) {
                return Card(
                    margin: EdgeInsets.all(10),
                    child: ListTile(
                      trailing: IconButton(
                        icon: Icon(Icons.edit),
                        onPressed: () {
                          Fluttertoast.showToast(
                              msg: 'Traitement de la demande');
                        },
                      ),
                      contentPadding: EdgeInsets.only(right: 30, left: 36),
                      title: Text(
                          'Demandée par: ${docsMesures[index]['affectePar']}'),
                      subtitle: Text(
                          'Date limite: ${DateFormat('dd-MM-yyyy hh:mm a').format(docsMesures[index]['datePrise'].toDate())}'),
                    ));
              },
            ),
          )
        ],
      ),
    );
  }
}

以下是显示的结果:

enter image description here

提前谢谢!

推荐答案

这是因为在两个列表视图的列中使用Expanded,这将导致每个列表视图都有一半的高度.

从第一个ListView中go 掉Expanded,再加上shrinkWrap:true,就可以解决这个问题.

例如,这段代码:

Column(
        children: <Widget>[

          ListView.builder(
                itemCount: 1,
             shrinkWrap: true,

                itemBuilder: (BuildContext context, int index) {
                  return Card(
                    color: Colors.white,
                    elevation: 2.0,
                    margin: EdgeInsets.all(10),
                    child: ListTile(
                      contentPadding: EdgeInsets.only(right: 30, left: 36),
                      title: Text('asdf'),
                      subtitle: Text('Médecin: '),
                      trailing: Text('CH: 107'),
                      leading: Icon(Icons.person),
                    ),
                  );
                }),
     
          Expanded(
            child: ListView.builder(
              itemCount: 11,
              itemBuilder: (BuildContext context, int index) {
                return Card(
                    margin: EdgeInsets.all(10),
                    child: ListTile(
                      trailing: IconButton(
                        icon: Icon(Icons.edit),
                        onPressed: () {
                    
                        },
                      ),
                      contentPadding: EdgeInsets.only(right: 30, left: 36),
                      title: Text(
                          'Demandée par:'),
                  
                    ));
              },
            ),
          )
        ],
      );

会给你这样的东西:

enter image description here

Flutter相关问答推荐

如何将图像从顶部和底部半向外设置为飘动

Flutter -如何将导航轨道标签靠左对齐?

出现异常.RangeError(RangeError(index):无效值:有效值范围为空:0).分度误差

将图标呈现在Flutter 克牌小工具的角落上

如何使用Dio/Ffltter(前端)和amp;Go(后端)向API发送正确的请求

Android上火焰瓷砖之间的线条飘动

为什么Spotify Auth API返回400,而";code_verier不正确?

如何让两个展开的Widget根据其子窗口的屏幕大小

StateNotifer正在riverpod中提供初始状态值(bool)

ScaffoldMessenger 在等待键下方不起作用

GridView 渲染项目之间有微小的间隙

在flutter中从图库或相机中 Select 图像的方法

PreferredSizeWidget类不能用作混合,因为它既不是混合类也不是混合

Dart 撕掉 const 构造函数

如何使这种相机叠加在Flutter 中?

在向 Google Route API 发送 HTTP Post 请求期间发生错误,

为什么将 bloc 提供程序放在单独的文件/类中会引发错误?

如何将 List 转换为 String []?

如何在 tabBar 中的选项卡之间制作垂直线?

Flutter Firebase:如何判断返回值是否是特定对象