嘿,我是学习Flutter和Dart的新手。请帮助我。:) 我真的不知道该怎么办,我是一个完全的初学者。:/
现在我已经粘贴了我的完整代码,希望你能看到我在哪里定义了我的容器。 这一切都是一个 TabView,因为我想用一些例子来训练一个游戏,所以我尝试了 TabView。在 TabView 中,我打包了所有容器。如果有更好的选择,你当然也可以告诉我。:)
这是我的代码:
Future<void> _showAlert(BuildContext context) async {
showDialog(
context: context,
barrierDismissible: false,
builder: (BuildContext context) {
return AlertDialog(
title: Text('Accept?'),
content: Text("Do you accept?"),
actions: <Widget>[
FlatButton(onPressed: (){
Navigator.of(context).pop();
},
child: Text('No')
),
FlatButton(onPressed: (){
Navigator.of(context).pop();
},
child: Text('Yes')
),
],
backgroundColor: Colors.deepOrange,
shape: CircleBorder(),
);
}
);
}
class MyApp extends StatelessWidget {
List<Widget> containers = [
Container(
color: Colors.orange,
padding: EdgeInsets.all(20.0),
alignment: Alignment.center,
child: Container(
height: 80,
width: 80,
child: FloatingActionButton(
child: Icon(Icons.check),
tooltip: ('"Hello World"'),
onPressed: () {
print('Hello World');
},
backgroundColor: Colors.blue,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.all(
Radius.circular(16.0),
),
),
),
),
),
Container(
color: Colors.teal,
alignment: Alignment.center,
child: RaisedButton(
onPressed: () {
print("Raised Button clicked!");
},
child: Text(
"Please click on me!",
style: TextStyle(fontSize: 18),
),
),
),
Container(
color: Colors.deepPurple,
alignment: Alignment.center,
child: RaisedButton(onPressed: () {_showAlert(context);},
color: Colors.deepOrange,
child: Icon(Icons.warning)
),
),
];
错误说:未定义的名称"上下文"。(在我的按钮的按压部分。
显示错误
代码片段 1
代码片段 2
您在无状态小部件中缺少的是build method
(包含上下文(,但问题是您无法使用 build 方法返回List,因为它只返回一个小部件。为了解决这个问题,你应该首先为你的小部件列表创建一个函数,然后在无状态小部件中返回具有子属性的小部件内部的函数,如Column
您的小部件列表功能
widgetList(BuildContext context) {
return [
Container(
color: Colors.orange,
padding: EdgeInsets.all(20.0),
alignment: Alignment.center,
child: Container(
height: 80,
width: 80,
child: FloatingActionButton(
child: Icon(Icons.check),
tooltip: ('"Hello World"'),
onPressed: () {
print('Hello World');
},
backgroundColor: Colors.blue,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.all(
Radius.circular(16.0),
),
),
),
),
),
Container(
color: Colors.teal,
alignment: Alignment.center,
child: RaisedButton(
onPressed: () {
print("Raised Button clicked!");
},
child: Text(
"Please click on me!",
style: TextStyle(fontSize: 18),
),
),
),
Container(
color: Colors.deepPurple,
alignment: Alignment.center,
child: RaisedButton(
onPressed: () {
_showAlert(context);
},
color: Colors.deepOrange,
child: Icon(Icons.warning)),
),
];
}
您的无状态小部件
class MyApp extends StatelessWidget {
@override Widget build(BuildContext context) {
return Column(
children:
widgetList(context)
);
}
}