[Flutter] 去掉 ListView 上默认的的 top-padding

官方 issue 地址

起因

使用 Drawer 的时候,想在其中使用 ListView 来展示数据,但是发现在 DarwerHeader(ListView 布局上面的 一个 Widget)与 ListView 之间有一个明显的空白间隙,设置Header 部分颜色为 blue 和 ListView 部分为 amber 之后更为明显。
在这里插入图片描述

可以看到 blue 与 amber 之间,有一个很宽的间隔(并且使用布局分析发现其是 SliverPadding)。

原因

可滚动的 View 会添加一个默认的 padding(没错,就是这里的 padding),具体可以看 scroll_view.dart 中在这里插入图片描述

解决

可以使用 MediaQuery.removePadding 方法包裹此 ListView,并且指定你想移除的 Padding 为 true,比如这里我们需要移除 topPadding:

Widget _buildDrawerListView(){
  return MediaQuery.removePadding(
    context: context,
    removeTop: true,
    child: ListView.builder(
     .......
    )
  );
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值