【问题标题】:Flutter - Reducing unnecessary spacing inside ContainerFlutter - 减少容器内不必要的间距
【发布时间】:2022-12-17 19:45:54
【问题描述】:

我想删除容器内的间距,但我似乎无法正确处理,我尝试使用高度,但它仍然不起作用。

我的代码:

Widget build(BuildContext context) => SizedBox(
        height: 440,
        child: Container(
         //grey color
          color: CustomTheme().neutral100,
          child: Padding(
            padding: const EdgeInsets.fromLTRB(
                xxLargePadding, xLargePadding, xxLargePadding, largePadding),
            child: ListView.separated(
                shrinkWrap: true,
                physics: const NeverScrollableScrollPhysics(),
                itemBuilder: (_, index) => Column(
                      crossAxisAlignment: CrossAxisAlignment.start,
                      children: [
                        Text(
                          officials[index].fullName,
                          style: TextStyle(

                              fontSize: 12, color: CustomTheme().neutral500),//white color
                        ),
                        Text(
                          officials[index].type,
                          style: TextStyle(
                              fontSize: 12, color: CustomTheme().neutral400),
                        ),
                      ],
                    ),
                separatorBuilder: (_, index) => const Padding(
                      padding: EdgeInsets.symmetric(vertical: largePadding),
                      child: Divider(),
                    ),
                itemCount: officials.length),
          ),
        ),
      );

结果如下图所示:

我想删除顶部用红色突出显示的间距。 似乎有什么东西在制造那个空间,我就是不明白。

非常感谢您的帮助。

【问题讨论】:

    标签: flutter


    【解决方案1】:

    这是因为您在 container 中使用了 padding,将 0 设置为 top 并且 bottom 还将 listview 填充设置为 0

    Container(
        //grey color
        color: CustomTheme().neutral100,
        child: Padding(
           padding: const EdgeInsets.fromLTRB(xxLargePadding, 0, xxLargePadding, 0), // <--- change this
           child: ListView.separated(
              padding:EdgeInsets.zero, // <--- add this
        ...
    )
    

    为您的代码提供更清晰代码的提示,将您的 separatorBuilder 更改为:

    separatorBuilder: (_, index) => Divider(
       height: largePadding + 16,// largePadding + Divider's default height value
    ),
    

    【讨论】:

    • 嗨@eamirho3ein,仍然没有删除间距
    • 我更新了我的答案,@SaDev