Flutter中Column内两个Container之间出现多余空白间距如何解决?
问题原因
你遇到的多余空白来自第二个Container内嵌套的垂直ListView.builder自带的默认边距:
Flutter中所有可滚动组件(ListView、GridView、CustomScrollView等)默认会自动添加padding属性,数值来自当前页面的MediaQuery,用于适配系统状态栏、刘海屏等系统遮挡区域。你给外层Container加琥珀色背景后空白区域也显示为琥珀色,也能佐证空白是Container内部子组件的边距导致的,不是两个Container之间的间隔。
解决方法
给垂直的ListView.builder手动设置padding为EdgeInsets.zero即可移除默认边距,修改后代码如下:
Container( color: Colors.amber, child: ListView.builder( physics: ClampingScrollPhysics(), shrinkWrap: true, scrollDirection: Axis.vertical, padding: EdgeInsets.zero, // 新增这一行移除默认padding itemCount: 10, itemBuilder: (context, int index) { return VerticalTile(); }, ), )
补充说明
- 后续如果遇到可滚动组件出现无法定位的多余边距,优先检查是否是默认自动添加的padding导致
- 移除默认边距后你可以自行给外层Container设置margin/padding自定义两个容器的间隔
内容的提问来源于stack exchange,提问作者M65D85
相关产品推荐
相关产品推荐

