我一直试图在Flutter中获得整个上下文视图的大小。但每次我尝试,我都会得到上面提到的错误。这是我的密码:
import 'package:flutter/material.dart';
void main => runApp(new MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
final size = MediaQuery.of(context).size;
return new MaterialApp(
home: new Scaffold(),
);
}
}
注意:我还尝试了一个StatefulWidget
。请帮我找出我做错了什么。
我用下面的方法修复了它。首先,我创建了一个名为MyWidget
的新类,并在MaterialApp
的home:
中返回它。请参阅下面的代码:
import 'package:flutter/material.dart';
void main => runApp(new MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
home: new MyWidget(),
);
}
}
class MyWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
final size = MediaQuery.of(context).size;
return new MaterialApp(
home: new Scaffold(),
);
}
}
此外,将大小声明为最终大小也无关紧要。处理方向/旋转。
当您在MaterialApp
内时,可以访问MediaQuery
。访问媒体查询的位置不正确。
请参阅以下代码:
import 'package:flutter/material.dart';
class CommonThings {
static Size size;
}
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: 'MediaQuery Demo',
theme: new ThemeData(
primarySwatch: Colors.red,
),
home: new MyHomePage(),
);
}
}
class MyHomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
CommonThings.size = MediaQuery.of(context).size;
print('Width of the screen: ${CommonThings.size.width}');
return new Container();
}
}
我特意创建了一个具有静态大小的类CommonThings
,这样你就可以在整个应用程序中使用它。
小部件周围需要一个MaterialApp
或WidgetsApp
。它们提供了MediaQuery
。当您调用时。of(context)
flatter将始终查找小部件树以查找小部件。
你通常把这个放在主菜里。投掷:
void main() => runApp(App());
class App extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Title',
theme: kThemeData,
home: HomePage(),
);
}
}
class HomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
final size = MediaQuery.of(context).size;
return Container(
child: ...,
);
}
}
开始学习Flutter,所以我在考虑是否可以创建一个返回对象的函数,但是在这个函数中我想使用。我的意思是,我知道我可以创建这样一个函数,但是如果我在其中使用,就会出现一个错误抱怨缺少mediaqueryProvider。我知道我可以在MaterialApp的子元素中使用MediaQuery,但我现在有一个设计问题。想象一下: 谢谢你的帮助。
正在执行热重启。..正在将文件同步到设备sdk gphone x86 arm...在1,910毫秒内重新启动应用程序。 widgets library捕获异常widgets library捕获异常widgets library捕获异常widgets library捕获异常widgets library捕获异常widgets library捕获异常widgets library捕获异常widgets
**试图通过终结点调用存储库,但始终出现错误**
编辑: 我找到了另一个解决这个问题的方法。如果我们给一个键,它是,我们可以如下所示显示快捷键,而不需要将主体封装在小部件中。但是,返回的小部件应该是一个有状态的小部件。
我的代码是 这是我创建文本表单的方式
Xcode的输出:在文件中包含从 /Users/dani/development/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-6.0.3/ios/Classes/FLTURLLauncherPlugin.m: 7: /Users/dani/development/flutter/.pub-cache/hosted/pub.dart