dart - 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,
)
)
)
适合: BoxFit.contain 适用于
Container(
height: 30,
width: 10
)
但不适用于我在画布矩形上绘制的 CustomePaint():
canvas.drawRect(new Rect.fromLTWH(0, 0, 10 , 30), new Paint()..color =
Colors.red);
解决方案
看来您只提供了所需的一部分代码。
我已经尝试了几乎你的代码,它工作得很好。我使用了另一种颜色并为 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;
}
}
推荐阅读
- angular - 有没有办法自定义角度日期选择器?
- python - Python中从头开始的逻辑回归tfidf稀疏矩阵
- javascript - 使用 css 设置画布的宽度和高度可以缩放整个事物
- cordova - 了解 ionic 和 cordova 包装器
- 64-bit - 如何也为 32 位和 64 位 JRE 配置安装程序?
- python - Numpy 与内置列表相比的时间复杂度
- arrays - 有没有办法访问存储在一维数组中的文档?
- javascript - 节点在 mac 上工作,但不在 ubuntu 上?
- ansible - Ansible:如果远程主机上存在文件,则回显文件的内容
- wso2 - 如何在 WSO2 APIM Analytic 3.0.0 中配置 SSL?