Я пытаюсь центрировать текстовый виджет в пользовательской форме, созданной с помощью Custom Painter, я пытался разместить виджет Stack, но это не удалось, я погуглил, нашел TextPainter и попытался использовать его. Я не знаю, правильное ли это решение, но я не мог добиться чего я хотел
Я хочу получить кнопку с зеленой стрелкой. В настоящее время у меня есть кнопка с желтой стрелкой.
Есть идеи?
class CustomShape1 extends CustomPainter{
@override
void paint(Canvas canvas, Size size) {
TextPainter textPainter = TextPainter(
text: TextSpan(
text: 'Foo\nBar',
style: TextStyle(
color: Colors.white,
fontSize: 30,
),
),
textDirection: TextDirection.ltr,
textAlign: TextAlign.center
);
Paint fillPaint = Paint();
fillPaint.color = const Color(0xFF830B2C);
fillPaint.style = PaintingStyle.fill;
Path path = Path();
path.moveTo(size.width*0.5000125,size.height*0.2996000);
path.cubicTo(size.width*0.6875031,size.height*0.2990750,
size.width*0.6871875,size.height*0.2979000,size.width*0.7500000,size.height*0.2989000);
path.quadraticBezierTo(size.width*0.7645125,size.height*0.5243200,
size.width*0.9373000,size.height*0.6009200);
path.lineTo(size.width*0.9373000,size.height*0.6395600);
path.lineTo(size.width*0.5000500,size.height*0.6401600);
path.quadraticBezierTo(size.width*0.5000406,size.height*0.5550200,
size.width*0.5000125,size.height*0.2996000);
path.close();
canvas.drawPath(path, fillPaint);
textPainter.layout(
minWidth: 0,
maxWidth: size.width,
);
final offset = Offset(50 - (textPainter.width / 2), 100 - (textPainter.height / 2));
textPainter.paint(canvas,offset);
}
@override
bool shouldRepaint(covariant CustomPainter oldDelegate) {
return false;
}
}





Осмотрев свой холст, вы можете увидеть, что он нарисован неправильно, поэтому вы не видите текста на фигуре.
final offset = Offset(size.width / 2 + 50, size.height / 2); //text offset
либо переделайте фигуру, либо попробуйте подстроиться под это смещение, это даст вам видимость текста на фигуре для начала
здорово! это произошло потому, что неправильный custompaint(
да, я думаю, что форма имеет ошибки, когда я делаю ее жестом, обнаруживаемым, она не реагирует в соответствии с границами кнопки
это на самом деле сработало после того, как я поиграл с положением текста, я нашел правильное место Идея в том, что вам просто нужно поиграть со смещением