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;
}
}