dart - Stack inside Stack in flutter
问题描述
我想把 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"),
)
],
),
)
],
解决方案
您可以使用height和width属性包装您的第二个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"),
)
],
),
),
)
],
),