Stack inside Stack in flutter

Raf*_*fal 8 dart flutter flutter-layout

我想在颤动中将 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"),
            )
          ],
        ),
      )
    ],
  )
Run Code Online (Sandbox Code Playgroud)

如果我在内部堆栈的定位内添加“top: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"),
            )
          ],
        ),
      )
    ],
Run Code Online (Sandbox Code Playgroud)

Vir*_*iya 18

您可以使用高度宽度属性包装您的第二个Stack With Container

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

  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"),
              )
            ],
          ),
        ),
      )
    ],
  ),
Run Code Online (Sandbox Code Playgroud)