Итак, я пытаюсь нарисовать диагональную линию на экране, используя виджет CustomPaint в флаттере. из виджета CustomPaint я вызываю свой класс CustomPainter с именем BottomCurvePainter. Код, для которого это что-то вроде этого.
class BottomCurvePainter extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
// TODO: implement paint
Paint paint = Paint();
paint.color = Colors.black;
paint.style = PaintingStyle.stroke;
paint.strokeWidth = 5.0;
Path path = Path();
path.lineTo(size.width, size.height);
canvas.drawPath(path, paint);
}
@override
bool shouldRepaint(CustomPainter oldDelegate) {
// TODO: implement shouldRepaint
//throw UnimplementedError();
return true;
}
}
То, как я звоню в моем доме, выглядит следующим образом: -
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
color: Colors.orange,
child: CustomPaint(
painter: BottomCurvePainter(),
),
),
);
}
}
, но, похоже, это не работает. Однако я могу заставить его работать, если я удаляю виджет Scaffold и напрямую возвращаю контейнер, что-то вроде этого -
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return Container(
color: Colors.orange,
child: CustomPaint(
painter: BottomCurvePainter(),
),
);
}
}
Может кто-нибудь объяснить, почему не работает упаковка контейнера в леса? Благодаря.