您可以将Positioned 和Align 与Stack 小部件一起使用
堆栈允许您将元素堆叠在一起,数组中的最后一个元素具有最高的优先级。您可以使用Align、Positioned 或Container 来定位堆栈的子级。
对齐
通过使用Alignment 设置对齐方式来移动小部件,Alignment 具有 topCenter、bottomRight 等静态属性。或者您可以完全控制并设置Alignment(1.0, -1.0),它的 x,y 值范围为 1.0 到 -1.0,其中 (0,0) 为屏幕中心。
Stack(
children: [
MyWidget(),
Align(
alignment: Alignment.topCenter,
child: MyWidget(),
),
Container(
alignment: Alignment(-0.9, -0.9),
child: MyWidget(),
)
]
);
定位
作为对齐的替代方法,您可以相对于父小部件定位子小部件。
ConstrainedBox(
constraints: BoxConstraints.tight(Size(double.infinity, 256)),
child: Stack(
alignment: AlignmentDirectional.center,
children: <Widget>[
Positioned(
top: 0.0,
child: Icon(Icons.calendar_today,
size: 128.0, color: Colors.lightBlueAccent),
),
Positioned(
top: 4,
right: 110,
child: CircleAvatar(radius: 16, backgroundColor: Colors.red)),
],
),
)