我刚添加了一个ListView作为Scaffold > Stack的子代,它的顶部似乎有SafeArea。列没有此问题。有什么办法让我把它移走吗?
Container(
color: Colors.grey[100],
child: ListView(
children: <Widget>[
Image(
image: snapshot.data.hero,
height: 300.0,
fit: BoxFit.cover,
),
],
),
),ListView

列

发布于 2018-08-30 22:56:23
来自ListView文档:
默认情况下,ListView将自动填充列表的可滚动极限,以避免MediaQuery的填充所指示的部分阻塞。若要避免此行为,请使用零填充属性重写。
所以解决办法是:
ListView(
padding: EdgeInsets.zero,
...
);发布于 2018-08-31 13:30:33
也找到了这个解决方案
MediaQuery.removePadding(
context: context,
removeTop: true,
child: ListView(...),
)发布于 2020-05-17 05:33:19
这显然是正确的答案:
padding: EdgeInsets.zero但我只是想补充一些关于这个问题的额外信息,这对我自己有帮助。
如果不提供填充,它将自动使用MediaQuery.of(上下文).padding的一部分
例如,在垂直列表视图中,默认填充如下:
final EdgeInsets mediaQueryVerticalPadding =
mediaQuery.padding.copyWith(left: 0.0, right: 0.0);这意味着,如果您希望将默认行为保留在一个部分中并更改另一个值,则应该使用类似的方法。
例如,只在MediaQuery中保留顶部填充,然后编辑其余内容:
ListView(
padding: MediaQuery.of(context).padding.copyWith(
left: 0,
right: 0,
bottom: 50,
),
...
),https://stackoverflow.com/questions/52105557
复制相似问题