【问题标题】:Redundant space in page problem in FlutterFlutter 页面中的冗余空间问题
【发布时间】:2021-11-17 02:40:33
【问题描述】:

//已解决:堆栈中的一个容器有一个边距属性,边距是对称的。改为 EdgeInsets.only(left:..,top:..)

我想让我的 ListView 在页面的蓝色部分之后启动。但是有一个空白和多余的空间,不允许我从预期的点开始。

the blank space that i get

这是我的代码:

Column(children:[Stack(some other code),Expanded(child:ListView(..))]);

【问题讨论】:

  • 已测试,但未能重现相同的错误,可以包含完整的小部件。
  • 完整的Widget树是:Scaffold -> SafeArea -> Column - Stack and Expanded in Column,Expanded的子节点是ListView
  • 每个小部件都包含独特的属性,你能分享代码 sn-p 来重现错误吗?

标签: flutter stack


【解决方案1】:

空间存在是因为您将Stack(some other code) 包裹在Column 中。 如果你想让ListView 超过some other code,这是你应该做的,​

Stack(
 ​children:[
   //some other code,
   Column(
     ​children:[
       ​Expanded(
         child : ListView(...)
       ),
...

【讨论】:

  • 我不想让 ListView 超过其他一些代码。我只想删除堆栈和列表视图之间的空白位置。
  • 堆栈正在占用该空间。删除该堆栈将删除空格,@bach。
  • 我也是这么想的,但它是一个空格。怎么可能?没有白色容器。你有什么想法吗?
  • 你是说即使去掉了整个Stack,还有一个padding?
  • 是的,我遇到了同样的问题
【解决方案2】:

根据documentation

默认情况下,ListView 将自动填充列表的可滚动末端,以避免 MediaQuery 填充指示的部分障碍。为避免此行为,请使用零填充属性覆盖。

要删除它,请将ListView 包装成MediaQuery.removePadding

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

【讨论】:

  • 对不起,它不起作用。这是我收到的错误消息:“渲染库捕获的异常═════════════════════════════════RenderBox是未布置:RenderRepaintBoundary#ecc4b relayoutBoundary=up3 NEEDS-PAINT 'package:flutter/src/rendering/box.dart':断言失败:第 1930 行 pos 12:'hasSize'"
  • 你能用你当前的代码更新你的问题吗?此错误似乎与ListView 上方的填充无关。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多