【发布时间】:2021-08-29 17:22:51
【问题描述】:
这是我的代码的一部分,我不断收到非空字符串必须提供给文本小部件。 还是新手,所以我不确定如何解决这个问题。我尝试将 ??"" 放在 child: Text(myQuiz[0][i.toString()] 上,但随后它给了我一个错误 The method '[]' was called on null。 接收方:空 尝试调用:
Widget optionButton(String k) {
return Padding(
padding: EdgeInsets.only(
top: 10
),
child: MaterialButton(
onPressed: () => checkAns(k),
child: Text(
myQuiz[1][i.toString()][k],
style: TextStyle(
color: Colors.black,
fontFamily: "Open Sans",
fontSize: 16.0,
),
maxLines: 1,
),
color: buttonColor[k],
minWidth: 200.0,
height: 45.0,
shape:
RoundedRectangleBorder(borderRadius: BorderRadius.circular(18.0),
side: BorderSide(color: Color(0xffb0dab9))),
),
);
}
@override
Widget build(BuildContext context) {
SystemChrome.setPreferredOrientations(
[DeviceOrientation.portraitDown, DeviceOrientation.portraitUp]);
return WillPopScope(
onWillPop: () {
return showDialog(
context: context,
builder: (context) => AlertDialog(
content: Text("You must finish this quiz :)"),
actions: <Widget>[
FlatButton(
onPressed: () {
Navigator.of(context).pop();
},
child: Text(
'Ok',
),
)
],
));
},
child: Scaffold(
appBar: AppBar(title: Text('Quiz'),backgroundColor: Color(0xffb0dab9)),
backgroundColor: Colors.yellow[100],
body: Container(
padding: EdgeInsets.all(50),
child: SingleChildScrollView(
child: Column(
children: <Widget>[
Container(
padding: EdgeInsets.all(20),
alignment: Alignment.center,
child: Text(myQuiz[0][i.toString()],
style: TextStyle(fontSize: 20.0, color: Colors.black),
),
),
AbsorbPointer(
absorbing: disableAnswer,
child: Container(
padding: EdgeInsets.only(top: 30),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
optionButton('a'),
optionButton('b'),
optionButton('c'),
optionButton('d'),
],
),
),
),
Container(
padding: EdgeInsets.only(top: 30),
alignment: Alignment.topCenter,
child: Center(
child: Text(
showTimer ,
style: TextStyle(
fontSize: 20.0,
),
),
),
),
],
),
),
),
)
);
}
}
【问题讨论】:
标签: flutter