flutter 如何删除列子项之间的间隙?

t3psigkw  于 2023-04-22  发布在  Flutter
关注(0)|答案(1)|浏览(233)

我有一个Flutter屏幕,它是用下面的代码构建的。我希望ListView小部件和Row小部件之间没有空间。但是代码生成的结果显示在屏幕截图中。我如何消除两个小部件之间差距?

Material(
    color: const Color.fromARGB(128, 0, 0, 0),
    child: Padding(
      padding: const EdgeInsets.only(top: 56.0, right: 150.0),
      child: Column(
        children: [
          Container(
            height: 40,
            color: Colors.white,
            child: Row(
              children: const [
                Padding(
                  padding: EdgeInsets.only(left: 16.0),
                  child: Text('Select a new grocery list:'),
                ), // Padding
              ],
            ), // Row
          ), // Container
          ListView.builder(
                shrinkWrap: true,
                itemBuilder: (context, index) {
                  return Container(
                    decoration: BoxDecoration(
                      border: Border(
                        bottom: BorderSide(color: Colors.grey.shade700),
                      ), // Border
                    ), //BoxDecoration
                    child: ListTile(
                      visualDensity: VisualDensity.compact,
                      title: Text(groceryListNames[index]),
                      textColor: Constants.kDarkBlueTextColor,
                      tileColor: Colors.white,
                      onTap: () {
                        Navigator.pop(context, groceryListNames[index]);
                      },
                    ), // ListTile
                  ); // Container
                },
                itemCount: groceryListNames.length),
        ],
      ), // Column
    ), // Padding
  ), // Material

z2acfund

z2acfund1#

将属性padding: EdgeInsets.zero添加到ListView.builder()以删除不需要的填充:

ListView.builder(
  padding: EdgeInsets.zero,
);

或者
使用ListView.builder()作为MediaQuery.removePadding的子元素,以删除设备或系统应用的任何顶部填充:

MediaQuery.removePadding(
  context: context,
  removeTop: true,
  child: ListView.builder(),
);

相关问题