Flutter:将列中文本的宽度限制为其他子项的宽度

时间:2020-07-20 10:55:01

标签: flutter layout

我正在尝试在Flutter中实现这一目标,但无法弄清楚。用图片更容易解释:

enter image description here

我需要文本子项的最大宽度受列中另一个子项的约束(该子项具有可变的宽度-这是AnimatedContainer,其中动画中的宽度会发生变化)。我该怎么办?

这是我到目前为止的内容,但是允许文本宽度尽可能地扩展。 This is a similar question,但不能解决问题-使用CrossAxisAlignment.stretch不能满足我的需求。

Column(
  mainAxisSize: MainAxisSize.min,
  children: <Widget>[
    AnimatedContainer(
      width: _isSelected ? 100 : 50,
      height: 100,
    ),
    Text(
      "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua",
      overflow: TextOverflow.ellipsis,
    ),
  ]
)

1 个答案:

答案 0 :(得分:0)

您还可以将Text小部件包装在另一个AnimatedContainer中,并向其传递相同的条件宽度,该宽度应传递到其上方的AnimatedContainer

Column(
      mainAxisSize: MainAxisSize.min,
      children: <Widget>[
        AnimatedContainer(
          duration: Duration(seconds: 2),
          width: _isSelected ? 100 : 50,
          height: 100,
        ),
        AnimatedContainer(
          duration: Duration(seconds: 2),
          width: _isSelected ? 100 : 50,
          child: Text(
            "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore",
            overflow: TextOverflow.ellipsis,
          ),
        ),
      ],
    )