【发布时间】:2019-05-18 01:06:44
【问题描述】:
我正在尝试实现以下布局。这是列表的顶部单元格。
现在我设法使用以下代码得到以下结果
Row(
children: <Widget>[
Expanded(
child:
Center(
heightFactor: 3.5,
child:
Text("PLAY QUEUE",
),
),
),
Padding(
padding: EdgeInsets.fromLTRB(0,0,15.0,0),
child:
Align(
child:
Text("CLEAR"),
alignment: Alignment.centerRight,
),
),
],
),
您可能已经注意到,“PLAY QUEUE”偏离中心,这是正常的,因为它以剩余空间为中心,而“CLEAR”正在占用该空间。
所以居中只是从该布局中删除 CLEAR 标签的问题,但如果我这样做了,我该如何显示它?
看看documentation,我应该非常接近解决方案。但它们并没有将标题行居中(第 1 步,查看标题部分上的红色方块),因此显然不完全相同。
我不确定我现在应该瞄准什么布局。是否可以重叠小部件?所以我可以简单地居中并完全展开 PLAY QUEUE,然后用清除按钮在右侧重叠。
注意:我不想在播放队列标签上写任意左填充。
编辑: 感谢我从答案中得到的帮助,我现在使用以下代码得到了正确的结果:
Stack(
fit: StackFit.passthrough,
children: <Widget>[
Center(
heightFactor: 3.5,
child:
Text(title,
style: Theme.of(context).textTheme.title.copyWith(color: textColor),
),
),
Positioned.directional(
textDirection: TextDirection.rtl,
start: 30,
top: 22,
child:
Text("CLEAR"),
),
],
),
困扰我的是我无法垂直对齐,我手动编写了任意偏移量,我认为这不是正确的方法。
由于某种原因,我不能只放一个 Center() 或类似的东西。这是应该怎么做还是可以改进?
编辑 2:
我现在在 Stack() 类上使用 alignment: FractionalOffset.center,,它垂直对齐,就像我想要的那样。
所以现在一切都很好,我很高兴!谢谢大家:)
【问题讨论】:
标签: flutter centering flutter-layout