想要在单击按钮时显示警报对话框,在按下方法上显示错误。( 未定义的名称 'context' .)



嘿,我是学习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)

);
}
}

相关内容

  • 没有找到相关文章

最新更新