如何在保持宽度最小的情况下,让Flutter列中不同行有不同的十字轴对齐方式?

问题描述 投票:0回答:1

我想做这个。

chat preview

但时间戳在右边。

目前我有(为了阅读目的而简化,但本质是有的)。

Column(
  mainAxisSize: MainAxisSize.min,
  mainAxisAlignment: MainAxisAlignment.start,
  crossAxisAlignment: CrossAxisAlignment.start,
  children: <Widget>[
    Text(name),
    Container(
      constraints: BoxConstraints(maxWidth: 300),
      child: Text(content),
    ),
    Text(
      timestamp,
    ),
  ],
);

所以名字要在左边对齐,内容要在左边对齐。决定 列的宽度,最大为200,时间戳应该在右边。

这里的问题是,我不能使用任何类似于在行中使用 "时间戳 "的方法。ExpandedSpacer 或普通容器的最大宽度,然后正确的对齐方式或其他任何东西,因为它们都会占用尽可能多的水平空间,而我希望占用尽可能少的空间,同时让内容的长度决定宽度。设置 crossaxisalignmentCrossAxisAlignment.end 修复了,但是名字当然是在错误的一边。

所以本质上我想要一个不同的 crossaxisalignment 或至少是类似的东西。有什么方法可以做到这一点吗?

flutter flutter-layout
1个回答
0
投票

我经过一番实验,找到了解决方案。

它的难度不比包装 ColumnÌntrinsicWidth 然后简单地在 Text. 其他一切都没变。

© www.soinside.com 2019 - 2024. All rights reserved.