颤抖的小伙伴们大家好,
我正在尝试使用 mediaquery 获取屏幕尺寸并将其存储在名为 size 的变量中。 我在另一个屏幕上执行此操作 这给了我这个错误
无法在初始值设定项中访问实例成员“上下文”。(implicit_this_reference_in_initializer 位于 [appname] lib\serviveSelection.dart:45)
import 'package:flutter/material.dart';
class home extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<home> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
elevation: 0,
backgroundColor: Colors.white,
centerTitle: true,
automaticallyImplyLeading: false,
title: Text(
'Home',
style: TextStyle(
fontSize: 30,
color: Colors.black,
fontFamily: "Antipasto"
),
),
),
body: myapp(),
);
}
}
class myapp extends StatefulWidget {
@override
_myappState createState() => _myappState();
}
class _myappState extends State<myapp> {
var size = MediaQuery.of(context).size;
@override
Widget build(BuildContext context) {
return SingleChildScrollView(
child: Container(
child: Column(
children: [
Container(
width: 200,
child: Card(
child: Text(
'Welcome'
),
),
)
],
),
)
);
}
}
Run Code Online (Sandbox Code Playgroud)
一旦状态被实例化,mediaquery 就会被执行,这对于访问上下文还为时过早,因为上下文还没有准备好。将其移至方法内部build()。
class _myappState extends State<myapp> {
@override
Widget build(BuildContext context) {
var size = MediaQuery.of(context).size;
return SingleChildScrollView(
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7838 次 |
| 最近记录: |