flutter - 如何将文本对齐到父对齐小部件的中心
问题描述
我无法将文本与框的中心对齐。我尝试添加FractionalOffset.center
以将列与父级对齐,Align
但似乎没有什么不同。由于第二个Align
在第一个之内Align
,我不明白为什么FractionalOffset.center
不起作用。
图片:
代码:
@override
Widget build(BuildContext context) {
ThemeData themeData = Theme.of(context);
return Container(
height: 30.0,
child: Padding(
padding: EdgeInsets.all(0.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Expanded(
child: Align(
alignment: FractionalOffset.bottomLeft,
child: AspectRatio(
aspectRatio: 1.0,
child: Stack(
children: <Widget>[
Positioned.fill(
child: AnimatedBuilder(
animation: controller,
builder: (BuildContext context, Widget child) {
return CustomPaint(
painter: TimerPainter(
animation: controller,
backgroundColor: Colors.white,
color: themeData.indicatorColor,
));
},
),
),
Align(
alignment: FractionalOffset.center,
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
AnimatedBuilder(
animation: controller,
builder: (BuildContext context, Widget child) {
return Text(
timerString.substring(2),
style: TextStyle(color: Colors.white)
);
}),
],
),
),
],
),
),
),
),
],
),
),
);
}
解决方案
我可以建议你很多东西,但我会做得更好。当你被这样卡住时,我将向你展示如何“调试”。
你看到最新的Align
组件了吗?把它包裹在一个 中Container
,传递一个颜色,Colors.red
这样你就可以看到它到底在哪里Align
。
之后,您可以采取一些解决方法,因为您的孩子(文本)的行为不像您期望的那样,问题是父母的错。记住这个比喻。
考虑到这一点,您可以检查每个组件的父亲,首先,您的AnimatedBuilder
,您可以将其包装在一个Center
组件中,或者执行相同的技巧传递颜色并将其包装在 aContainer
中以检查他在堆栈中的位置,并且依此类推,依此类推。
如果不是你AnimatedBuilder
的行为错误,那么在树上检查他的父母直到你找到它。
希望这有帮助
推荐阅读
- jena - 在耶拿的事务之外,DatasetGraphInMemory 的后端是否优于 TripleStoreMem
- android - 编辑文本焦点不是回收器视图中的持久性
- angular - Angular Material点击事件不会触发
- android - 如何在 IO 线程中从房间数据库异步获取数据,并在主线程上使用 kotlin 中的 Flow 或 LiveData 更新 UI?
- mongodb - 带有 $sum 操作的 Mongodb 位置运算符“$”不起作用
- controller - C声音呼吸控制和声音字体
- ios - 如何在 SceneDelegate 中组合两个内容
- docker - 无法访问 Prometheus 仪表板/端口转发不起作用
- facebook - Facebook Business Manager - 您如何将关注者/喜欢从主要业务页面转移到商店页面?
- javascript - 前两个输入字段冻结的反应钩子表单,我无法单击前两个字段,在前两个输入字段之后它是可点击的