如何解决Flutter - 仅对齐一行内的一个小部件
我有一个高度不同的文本,后跟一个 PopupMenuButton。我希望文本在垂直轴上居中对齐(这样当只有 1 法格文本时不会有奇怪的空白区域)但是 PopupMenuButton 保持在右上角,无论文本的高度如何.因此,使用 crossAxisAlignement 在这里不起作用,因为所有小部件都受到影响。在文本或 PopupMenuButton 上使用 Align 小部件不起作用,textAlign 也不起作用似乎任何解决方案都必须在 Row 级别而不是在其子级中实现,这是有道理的。
现在我使用 Row 来包含这两个小部件,但是如果我想要之前提到的行为,我不太确定这是我需要的。是否有针对 Row 的解决方案,或者我可以为此使用的其他小部件?
这是目前的代码。谢谢。
Row(
children: [
Expanded(
child: RichText(
text: TextSpan(),// bunch of text in there
)
)
),SizedBox( // To Box in the 3 dots icon (material design forces 48px otherwise)
height: 24,width: 24,child: PopupMenuButton(
padding: EdgeInsets.all(0),onSelected: menuSelect,itemBuilder: (BuildContext context) {
return [
PopupMenuItem(value: 0,child: Text('Read',textAlign: TextAlign.center,),PopupMenuItem(value: 1,child: Text('Delete',)
];
},)
],)
解决方法
这是一种方法:
- 用
SizedBox
包裹您的Align(alignment: Alignment.topRight)
- 用
Row
包裹您的IntrinsicHeight
,使横轴 不拉伸
或者,如果您不熟悉 Stack 小部件,您可能需要查看它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。