如何使背景不滚动但前景滚动?

Posted

技术标签:

【中文标题】如何使背景不滚动但前景滚动?【英文标题】:How to make background not scroll but foreground scroll? 【发布时间】:2019-10-19 09:45:59 【问题描述】:

我正在使用 Flutter for web 来制作网站。我需要制作前景滚动,但背景不像普通网站那样滚动。例如:codemagic.io。 我不能使用脚手架背景,因为我想使用 CustomPainter 自定义背景。

我尝试使用Stack,但问题是我需要ScrollView 中的Center 小部件,如果我这样做,那么CustomPainter 不会从页面顶部开始:

Stack(
          children: <Widget>[
            Center(
              child: SingleChildScrollView(
                child:
Stack(children: <Widget>[

  CustomPaintWidget(),



                  Widgets(),


],),

有人知道解决办法吗?

谢谢!

【问题讨论】:

【参考方案1】:

您在这里有两个堆栈,一个仅包含一个小部件(对于您想要做的事情基本上没有意义)。将一个小部件放在该堆栈的底部索引 (0) 上,并将其设置为其容器的大小。您可以使用 LayoutBuilder 来获取其父小部件的大小。然后将 singlechildscrollview 放在上面。

【讨论】:

感谢您的回复!但这是行不通的。我试试你的解决方案,但小部件不在SingleChildScrollView 的中心。可以贴代码吗? 然后将 SingleChildScrollview 内部的小部件包装在 Center 小部件中。 我已经尝试过了。包裹在Center 小部件中不会改变这一点。仍然显示在顶部而不是中心

以上是关于如何使背景不滚动但前景滚动?的主要内容,如果未能解决你的问题,请参考以下文章

使 UIView 前景透明

如何使openCV背景减法KNN算法持续更长时间,跟踪一个没有移动的前景对象

如何使网页的背景图片不随着滚动条移动 使背景图片固定?(要代码)

如何将 SingleChildScrollView 居中但使背景拉伸以填满屏幕?

样式属性

如何使背景图像正确适合滚动视图?