堆叠内部颤振中堆叠

时间:2018-10-22 19:43:28

标签: dart flutter flutter-layout

我想将Stack放置在Flutter中,如果我更改了内部Stack的已定位小部件的位置,则无法使用。

有效:

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

如果我在内部Stack的位置中添加“ top:200.0”,则内部Stack消失并且抖动引发错误

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"),
            )
          ],
        ),
      )
    ],

1 个答案:

答案 0 :(得分:-1)

您可以使用具有高度宽度属性的容器包装第二个 Stack 。< / p>

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

  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"),
              )
            ],
          ),
        ),
      )
    ],
  ),