Flutter 颤振-窗口小部件之间的空间发回

Flutter 颤振-窗口小部件之间的空间发回,flutter,Flutter,我想建立一个这样的时间表 我已经设法构建了下面的时间线,但是小部件之间还有一些空白。我找不到如何移除它。 这是我使用的代码: import'dart:math'; 进口“包装:颤振/材料.省道”; 将“包:app/models/timeline.dart”导入tml; 类TimeLineWidget扩展了无状态Widget{ 最终双级WidgetWidth=200; 最终双阶梯填充=16.0; 最终颜色color1=Colors.green; 最终颜色color2=Colors.blue;

我想建立一个这样的时间表

我已经设法构建了下面的时间线,但是小部件之间还有一些空白。我找不到如何移除它。

这是我使用的代码:

import'dart:math';
进口“包装:颤振/材料.省道”;
将“包:app/models/timeline.dart”导入tml;
类TimeLineWidget扩展了无状态Widget{
最终双级WidgetWidth=200;
最终双阶梯填充=16.0;
最终颜色color1=Colors.green;
最终颜色color2=Colors.blue;
最终tml.TimeLine _TimeLine=tml.TimeLine(步骤:[
tml.步骤(说明:“步骤1”),
tml.步骤(说明:“步骤2”),
tml.步骤(说明:“步骤3”),
tml.步骤(说明:“步骤4”),
tml.步骤(说明:“步骤5”),
tml.步骤(说明:“步骤6”),
tml.步骤(说明:“步骤7”)
]);
TimeLineWidget({Key}):超级(Key:Key);
@凌驾
小部件构建(构建上下文){
最终双时间线高度=_computeMaxStepHeight(上下文,_时间线);
返回容器(
高度:时间线高度,
子:SingleChildScrollView(
滚动方向:轴水平,
孩子:排(
crossAxisAlignment:crossAxisAlignment.stretch,
儿童:[
用于(地图条目)
在_timeLine.steps.asMap()[
_buildDescriptionWidget(上下文、entry.value、entry.key),
定制油漆(
油漆工:油漆工(
color1:entry.key.isEven?this.color1:this.color2,
color2:entry.key.isEven?this.color2:this.color1,
paintextrements:entry.key!=\u timeLine.steps.length-1,
),
尺寸:尺寸(timeLineHeight*2/3,timeLineHeight),
),
],
],
)),
);
}
Widget\u buildDescriptionWidget(
BuildContext上下文,tml.Step,int索引){
返回容器(
约束:BoxConstraints(maxWidth:this.stepWidgetWith),
边距:所有常数边集(0.0),
高度:双无限,
颜色:index.isEven?this.color1:this.color2,
填充:EdgeInsets.all(此为步填充),
子:文本(
步骤.说明,
风格:Theme.of(context).textTheme.subtitle2,
),
);
}
double_computeMaxStepHeight(BuildContext上下文,tml.TimeLine){
final TextStyle style=Theme.of(context).textTheme.subtitle2;
双最大高度=0.0;
timeLine.steps.forEach((步骤){
最终文本画家文本画家=文本画家(
text:TextSpan(text:step.description,style:style),
textDirection:textDirection.ltr)
…布局(
最小宽度:0,
maxWidth:this.stepWidgetWidth,
);
maxHeight=max(maxHeight,textPainter.size.height);
});
返回maxHeight+2*this.stepPadding;
}
}
类_三角形画师扩展自定义画师{
最终颜色1;
最终颜色2;
末梢骨;
最终绘画风格绘画风格;
_三角油漆工({
@要求本条第1款,
@需要这个颜色,
@需要这个,画四肢,
this.paintingStyle=paintingStyle.fill,
});
@凌驾
空心油漆(帆布,尺寸){
paintpaintbefore=Paint()
…颜色=颜色1
…风格=绘画风格;
paintpaintafter=Paint()
…颜色=颜色2
…风格=绘画风格;
canvas.drawPath(gettriangelPath(size.width,size.height),paintBefore);
如果(这是指四肢){
canvas.drawPath(getExtremitiesPath(size.width,size.height),paintAfter);
}
}
路径GetTriangelPath(双x,双y){
返回路径()
…移动到(0,0)
…线路至(x,y/2)
..lineTo(0,y);
}
路径getExtremitiesPath(双x,双y){
返回路径()
…移动到(0,0)
…lineTo(x,0)
…线路至(x,y/2)
…移动到(0,y)
..线到(x,y)
..直线至(x,y/2);
}
@凌驾
布尔应该重新绘制(_三角形绘制者旧委托){
返回oldDelegate.color1!=color1||
oldDelegate.color2!=color2||
oldDelegate.paintingStyle!=paintingStyle;
}
}
我认为问题在于我想将
容器
自定义画师
粘在一起,但我找不到如何删除分隔这两个小部件的白线