CustomPaint и FittedBox

Как подогнать мой CustomPaint к родительскому виджету?

return new Container(
    color: Color(0xfffff4f0),
    child: new Column(
        crossAxisAlignment: CrossAxisAlignment.stretch,
        mainAxisSize: MainAxisSize.max,
        children: <Widget>[
          new Expanded(
          flex: 6,
          child: FittedBox(
                  fit: BoxFit.contain,
                  child: widget CustomePaint() // Containers(),

          )),
          new Expanded(
              flex: 4,
          )
    )
)

fit: BoxFit.contain работает для

    Container(
        height: 30,
        width: 10
    )

но не работает с CustomePaint(), где я рисую на холсте прямоугольник:

canvas.drawRect(new Rect.fromLTWH(0, 0, 10 , 30), new Paint()..color = 
Colors.red);

0 ответов

Похоже, вы предоставили только часть необходимого кода.

Я пробовал почти ваш код, и он работал нормально. Я использовал другие цвета и добавил рамку в CustomPaint, чтобы лучше видеть, где она нарисована.

       
Widget getRootView() {
  return Container(
      color: Colors.green,
      child: Column(crossAxisAlignment: CrossAxisAlignment.stretch, mainAxisSize: MainAxisSize.max, children: <Widget>[
        Expanded(
          flex: 2,
          child: CustomPaint(painter: Painter3()),
        ),
        Expanded(
          flex: 1,
          child: Container(
            color: Colors.red,
            child: Center(child: Text("3")),
          ),
        )
      ]));
}

class Painter3 extends CustomPainter {
  @override
  void paint(Canvas canvas, Size size) {
    canvas.drawRect(Offset(10, 10) & Size(size.width - 20, size.height - 20), Paint()..color = Colors.blue);
  }

  @override
  bool shouldRepaint(CustomPainter oldDelegate) {
    return true;
  }
}

Что я здесь получаю:

Другие вопросы по тегам