我需要通过图标的基线将其居中在堆栈的中心:
我尝试
class Screen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("Tst")),
body: Stack(
children: <Widget>[
Container(
color: Colors.white,
),
Positioned(
bottom: context.size.height / 2,
width: context.size.width,
child: Align(
alignment: Alignment.bottomCenter,
child: Icon(
Icons.add_location,
size: 100,
),
)),
],
));
}
}
但是收到错误消息:
“在构建期间无法获取大小。” “此渲染对象的大小尚未确定,因为框架仍在”
答案 0 :(得分:0)
“在构建期间无法获取大小。” “此渲染对象的大小为 尚未确定,因为该框架仍在构建小部件的过程中”。
错误非常明显。您无法在构建窗口小部件之前计算其大小。
一种更好的选择是在这种情况下使用Center
小部件,如hayi所建议的那样:
Center(
child: Align(
alignment: Alignment.bottomCenter,
child: Icon(
Icons.add_location,
size: 100,
),
)),
上面的代码只是一个例子。
希望这会有所帮助
答案 1 :(得分:0)
您不能像这样调用上下文的大小。您必须使用scale
。还可以将MediaQuery
和left
与right
一起使用,以使小部件水平居中。
0.0