我正在尝试在Flutter中获取屏幕大小,但是我的自定义类中没有build方法。如何在不使用BuildContext类的情况下获取屏幕大小?
以下是代码:
class ShapesPainter extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
BuildContext context;
double width = MediaQuery.of(context).size.width;
double height = MediaQuery.of(context).size.height;
final paint = Paint();
paint.color = Colors.deepOrange;
var center = Offset(size.width / 2, size.height / 2);
print(height);
print(width);
Rect rect = Rect.fromLTWH(0.0, 0.0, width, height);
canvas.drawRect(rect, paint);
}
@override
bool shouldRepaint(CustomPainter oldDelegate) {
return false;
}
}
出现以下错误:
在绘制时抛出了以下断言: 'package:flutter/src/widgets/media_query.dart': Failed assertion: line 689 pos 12: 'context != null': is not true.
MediaQueryData.fromWindow(WidgetsBinding.instance!.window)
- Klemen Tusarheight
:MediaQueryData.fromWindow(WidgetsBinding.instance.window).size.width.toInt()
。谢谢! - Felipe Sales