2019-04-01 关于 flutter MediaQuery
2019-04-01 本文已影响7人
deadcalm
关于第一次获取 MediaQueryData.fromWindow(window).size
Size(0,0,0,0) 问题。
查看官方文档 下面说如果你使用了这个方法请确保是否实现了此方法WidgetsBindingObserver.didChangeMetrics
image.png所以你如果第一次拿不到size的话就去看下文档监听下页面改变,下面贴出官方示例代码
class MetricsReactor extends StatefulWidget {
const MetricsReactor({ Key key }) : super(key: key);
@override
_MetricsReactorState createState() => _MetricsReactorState();
}
class _MetricsReactorState extends State<MetricsReactor> with WidgetsBindingObserver {
@override
void initState() {
super.initState();
WidgetsBinding.instance.addObserver(this);
}
@override
void dispose() {
WidgetsBinding.instance.removeObserver(this);
super.dispose();
}
Size _lastSize;
@override
void didChangeMetrics() {
setState(() { _lastSize = WidgetsBinding.instance.window.physicalSize; });
}
@override
Widget build(BuildContext context) {
return Text('Current size: $_lastSize');
}
}