【发布时间】:2019-11-10 05:40:36
【问题描述】:
我正在创建一个显示一些气泡的新小部件,这些小部件应该由线条连接。
5-------6
|
4-------3
|
1-------2
我选择了一个 ListView 作为外部小部件,如果我理解正确,这应该给我可滚动性:
return Expanded(
child: ListView(
children: _createLWItems(_createBubbles()),
),
);
Children 是我的内部小部件的列表。每个小部件都是一行,所以我可以将两个气泡并排放置:
return Container(
child: Row(
children: <Widget>[
Container(
child: bubbleItem1,
alignment: Alignment.centerLeft,
),
Container(
child: bubbleItem2,
alignment: Alignment.centerRight,
)
],
),
decoration: BoxDecoration( //TODO remove after testing
shape: BoxShape.rectangle,
border: Border.all(color: Colors.blue),
),
);
BubbleItem 只是一个 Container,其 BoxDecoration 被 GestureDetector 包裹。
我想要实现的是,左侧气泡与左侧对齐,右侧与右侧对齐,但相反,两者都在左侧相邻放置,尽管行占据了我屏幕的整个宽度,如您所见(蓝色边框):
当我阅读here 时,行小部件有一个 MainAxisAlignment 但这只会将所有子元素左对齐、右对齐、居中等,而不是我的想法。
我怎样才能按照我想要的方式放置这些气泡? 如果它们放置正确,我想用线连接它们。有没有办法在不计算的情况下做到这一点?我的想法是在占据一行的气泡之间插入另一个小部件,但我需要以某种方式告诉它,它应该占据他所在行的气泡之间的整个空间。
目前我有点不确定我是否应该计算任何东西,因为我读过一些关于“在渲染之前你无法计算”的内容,但另一方面,我缺少一些理解如何在没有它。
【问题讨论】:
标签: flutter widget flutter-layout