如何在Flutter中获取容器的约束,例如高度和宽度

4

我目前正在使用Flutter开发聊天应用程序的界面。我尝试使用以下容器自定义聊天消息,以显示每条消息旁边的垂直线,就像Snapchat一样:

child: new Container(
    margin: const EdgeInsets.symmetric(vertical: 10.0),
    child: new Row(
      mainAxisAlignment: MainAxisAlignment.end,
      crossAxisAlignment: CrossAxisAlignment.start,
      children: <Widget>[
        new Container(
          alignment: Alignment.centerRight,
          width: 300.0,
          child: new Text(text),
        ),
        new Container(width: 2.0, height: 10.0, color: Colors.amber, child: null)
      ],
    ),
  )

问题在于这里:

new Container(width: 2.0, height: 10.0, color: Colors.amber, child: null)

当我明确指定高度,例如上面的10.0时,它不会随着消息缩放,只是像这样停留在顶部:

Short Vertical Line

因此,我想知道是否有一种方法可以动态地缩放线(容器)的高度,以使另一个消息文本容器的高度增加。

你能提供更多的上下文并详细阐述你的用例吗? - Shady Aziza
好的,已经编辑了问题。对此感到抱歉。 - Bobola
2个回答

9

LayoutBuilder 是你想要的。

构建器代理将接收一个 BoxConstraint 参数,对应容器的大小。


7
虽然Darky的回答是正确的,但在您的情况下,您不需要知道容器的尺寸。一个更简单的方法是在您的容器右侧只添加一个边框。
例如:
new Container(
    margin: const EdgeInsets.symmetric(vertical: 10.0),
    decoration: new BoxDecoration(
      border: new Border(
        right: new BorderSide(
          width: 2.0,
          color: Colors.amber,
        ),
      ),
    ),
    child: new Text('Hello World!'),
);

我为此苦思冥想了四个小时...谢谢 - Burhanuddin Rashid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接