我如何从 迁移MediaQuery.fromWindow到MediaQuery.fromView?
弃用消息是:
信息:“fromWindow”已弃用,不应使用。请改用 MediaQuery.fromView。为了准备即将到来的多窗口支持,此构造函数已被弃用。此功能在 v3.7.0-32.0.pre 之后已弃用。(deprecated_member_use at [flame_studio] lib/src/widgets/left_panel.dart:15)
该fromView方法正在获取一个FlutterView实例,我可以从上下文中获取它,或者我如何获取它?
Bas*_* A. 17
如果您没有上下文,请使用以下代码:
/// Without context
/// views can be [single, first, last, firstOrNull]
final MediaQueryData data = MediaQueryData.fromView(WidgetsBinding.instance.platformDispatcher.views.single);
return data.size.shortestSide < 600 ? "M" : "T";
Run Code Online (Sandbox Code Playgroud)
/// With Context
/// Basically - View.of(context) === WidgetsBinding.instance.window
/// Examples:
/// final double dpr = View.of(context).devicePixelRatio;
/// final Locale locale = View.of(context).platformDispatcher.locale;
MediaQuery.fromView(
view: View.of(context),
child: ...
)
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请查看 flutter 文档窗口单例已弃用
解决方案比我预期的要简单得多,只需FlutterView使用View.of(context):
MediaQuery.fromView(
view: View.of(context),
child: ...
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4783 次 |
| 最近记录: |