【问题标题】:Stack inside Stack in flutterStack inside Stack in flutter
【发布时间】:2018-10-22 19:43:27
【问题描述】:

我想把 Stack 放在 Stack 里面,如果我改变内部 Stack 的定位小部件的位置,它就不起作用。

作品:

Stack(
    children: [
      Positioned(
        top: 150.0,
        child: Text("Text#1"),
      ),
      Positioned(
        top: 100.0,
        child: Stack(
          children: [
            Positioned(
              child: Text("Text#2"),
            )
          ],
        ),
      )
    ],
  )

如果我在内部堆栈定位中添加“顶部:200.0”,内部堆栈消失并且颤振抛出错误

Stack(
    children: [
      Positioned(
        top: 150.0,
        child: Text("Text#1"),
      ),
      Positioned(
        top: 100.0,
        child: Stack(
          children: [
            Positioned(
              top:200.0,
              child: Text("Text#2"),
            )
          ],
        ),
      )
    ],

【问题讨论】:

  • 我知道原因,但我不明白你想要达到什么目的。您是否使用Positioned 来模仿Padding 的行为?
  • 我有一些基于 Stack 构建的图表,我想让这些图表像在 Tinder 中一样滑动,所以我将这些图表打包到另一个堆栈中

标签: dart flutter flutter-layout


【解决方案1】:

您可以使用 Container 包装您的第二个 Stackheightwidth 属性。

父小部件的堆栈填充高度和宽度,但在您的情况下,父小部件的高度和宽度未定义,因为它是堆栈小部件。如果您定义了父小部件的大小,以便堆栈小部件可以从它们的起点定位它们的子小部件。

  Stack(
    children: [
      Positioned(
        top: 350.0,
        child: Text("Text#1"),
      ),
      Positioned(
        top: 100.0,
        child: Container(
          height: mediaQueryData.size.height,
          width: mediaQueryData.size.width,
          child: Stack(
            children: [
              Positioned(
                top:200.0,
                child: Text("Text#2"),
              )
            ],
          ),
        ),
      )
    ],
  ),

【讨论】:

  • 我刚刚更新了我的答案,希望你能有更好的想法。
  • 你让我免于轻微头痛
猜你喜欢
  • 2015-03-24
  • 2019-10-05
  • 1970-01-01
  • 1970-01-01
  • 2020-09-19
  • 2021-03-31
  • 1970-01-01
  • 1970-01-01
  • 2014-05-24
相关资源
最近更新 更多