【发布时间】:2021-11-02 11:40:00
【问题描述】:
我试图让一些东西看起来像这样
这是我的代码
CustomPaint( painter: HexagonPainter(center: Offset(100, 100), radius: 65), child: Icon(Icons.speed), );
但我得到这样的结果
他们不在一起..我怎样才能存档这个
自定义画家代码`
class HexagonPainter extends CustomPainter {
static const int SIDES_OF_HEXAGON = 6;
final double? radius;
final Offset? center;
HexagonPainter({this.center, this.radius});
@override
void paint(Canvas canvas, Size size) {
Paint paint = Paint()..color = Color(0xff05c2c9);
Path path = createHexagonPath();
canvas.drawPath(path, paint);
}
Path createHexagonPath() {
final path = Path();
var angle = (math.pi * 2) / SIDES_OF_HEXAGON;
Offset firstPoint =
Offset(radius! * math.cos(0.0), radius! * math.sin(0.0));
path.moveTo(firstPoint.dx + center!.dx, firstPoint.dy + center!.dy);
for (int i = 1; i <= SIDES_OF_HEXAGON; i++) {
double x = radius! * math.cos(angle * i) + center!.dx;
double y = radius! * math.sin(angle * i) + center!.dy;
path.lineTo(x, y);
}
path.close();
return path;
}
@override
bool shouldRepaint(CustomPainter oldDelegate) => false;
} `
【问题讨论】:
-
你尝试过使用堆栈小部件吗?我想这样做很容易
-
不工作............
标签: flutter flutter-layout flutter-dependencies flutter-web flutter-test