Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 在颤振中重置无线电列表_Flutter_Radio Button_Flutter Layout - Fatal编程技术网

Flutter 在颤振中重置无线电列表

Flutter 在颤振中重置无线电列表,flutter,radio-button,flutter-layout,Flutter,Radio Button,Flutter Layout,我仍然是一个新手与颤振,我正在一个测验应用程序的工作现在 在单选按钮列表中,每当应用程序转到下一个问题时,单选按钮不会被重置,如果有人能指导我如何在调用下一个问题功能时重置单选按钮,我将不胜感激 伪码 class _QuizPageState extends State<QuizPage> { List<dynamic> myQuestion; _QuizPageState(this.myQuestion); int i = 0; int count =

我仍然是一个新手与颤振,我正在一个测验应用程序的工作现在 在单选按钮列表中,每当应用程序转到下一个问题时,单选按钮不会被重置,如果有人能指导我如何在调用下一个问题功能时重置单选按钮,我将不胜感激

伪码

class _QuizPageState extends State<QuizPage> {
  List<dynamic> myQuestion;
  _QuizPageState(this.myQuestion);
  int i = 0;
  int count = 0;
  int selectedRadioTile;
  int marks = 0;
  var selected;

  Widget choiceButton(String k, int value) {
    return Padding(
      padding: EdgeInsets.symmetric(
        vertical: 10,
      ),
      child: RadioListTile(
        value: value,
        groupValue: selectedRadioTile,
        title: Container(
          child: Text(myQuestion[i][k] ?? "None"),
        ),
        onChanged: (val) {
          setSelectedRadioTile(val);
          selected = val;
        },
        activeColor: Colors.green,
        selected: true,
      ),
    );
  }

  void initState() {
    selectedRadioTile = 0;
    super.initState();
  }

  setSelectedRadioTile(int val) {
    setState(() {
      selectedRadioTile = val;
    });
  }

  void checkAnswer() {
    var e = int.parse(myQuestion[i]["Answer"]);
    if (e == selected) {
      marks = marks + 1;
    } else {
      print("wrong");
    }
    nextquestion();
  }

  void nextquestion() {



    setState(() {
      if (count < 9) {
        i = randomBetween(0, myQuestion.length);
      } else {
        Navigator.of(context).pushReplacement(MaterialPageRoute(
          builder: (context) => resultpage(marks: marks),
        ));
      }
    });
  }

  @override
  Widget build(BuildContext context) {
    return WillPopScope(
      onWillPop: () {
        return showDialog(
            context: context,
            builder: (context) => AlertDialog(
                  title: Text(
                    "Alert",
                  ),
                  content: Text("You Can't Go Back At This Stage."),
                  actions: <Widget>[
                    FlatButton(
                      onPressed: () {
                        Navigator.of(context).pop();
                      },
                      child: Text(
                        'Ok',
                      ),
                    )
                  ],
                ));
      },
      child: Scaffold(
        appBar: AppBar(
          elevation: 30.0,
          title: Center(
            child: Text(
              'Quiz',
              style: TextStyle(
                color: Colors.white,
                fontSize: 20.0,
                fontFamily: "Quando",
                fontWeight: FontWeight.bold,
              ),
            ),
          ),
          backgroundColor: Colors.amber[800],
        ),
        body: LayoutBuilder(
          builder: (context, constraint) {
            return SingleChildScrollView(
              child: ConstrainedBox(
                constraints: BoxConstraints(minHeight: constraint.maxHeight),
                child: IntrinsicHeight(
                  child: Column(
                    children: <Widget>[
                      Expanded(
                        child: Column(
                          mainAxisAlignment: MainAxisAlignment.center,
                          mainAxisSize: MainAxisSize.min,
                          children: <Widget>[
                            Center(
                              child: Container(
                                padding: EdgeInsets.only(top: 20, left: 10),
                                child: Text(
                                  myQuestion[i]["Question"] ?? "None",
                                  style: TextStyle(
                                    fontSize: 15.0,
                                    fontFamily: "Quando",
                                    fontWeight: FontWeight.bold,
                                  ),
                                ),
                              ),
                            ),
                            SizedBox(
                              height: 20,
                            ),
                            Expanded(
                              child: AspectRatio(
                                aspectRatio: 16 / 11,
                                child: ClipRect(
                                  child: SizedBox(
                                    height: 50,
                                    child: PhotoView(
                                      imageProvider: AssetImage(
                                          myQuestion[i]["Image"] ?? "None"),
                                      minScale:
                                      PhotoViewComputedScale.contained *
                                          0.5,
                                      maxScale:
                                      PhotoViewComputedScale.covered * 2,
                                      initialScale: 0.6,
                                      backgroundDecoration: BoxDecoration(
                                        color: Theme.of(context).canvasColor,
                                      ),
                                    ),
                                  ),
                                ),
                              ),
                            ),
                            Text(
                              "To adjust the image double Tap",
                              style: TextStyle(
                                fontFamily: "Quando",
                                color: Colors.black26,
                                fontSize: 15.0,
                                fontWeight: FontWeight.bold,
                              ),
                            ),
                          ],
                        ),
                      ),
                      SizedBox(
                        height: 10,
                      ),
                      Expanded(
                        child: Column(
                          mainAxisAlignment: MainAxisAlignment.center,
                          mainAxisSize: MainAxisSize.min,
                          children: <Widget>[
                            choiceButton("option1", 1),
                            choiceButton("option2", 2),
                            choiceButton("option3", 3),
                            choiceButton("option4", 4),
                          ],
                        ),
                      ),
                      Expanded(
                        flex: 0,
                        child: RaisedButton(
                          splashColor: Colors.blueAccent,
                          color: Colors.blueAccent,
                          shape: RoundedRectangleBorder(
                            borderRadius: BorderRadius.circular(50.0),
                          ),
                          onPressed: () {
                            checkAnswer();
                            count = count + 1;
                            showDialog(
                                context: context,
                                builder: (context) => AlertDialog(
                                      title: Text(
                                        "Explaination",
                                      ),
                                      content: Text(
                                        myQuestion[i]["Explanation"] ?? "None",
                                        style: TextStyle(
                                          fontSize: 15.0,
                                          fontFamily: "Quando",
                                        ),
                                      ),
                                      actions: <Widget>[
                                        FlatButton(
                                          onPressed: () {
                                            Navigator.of(context).pop();
                                          },
                                          child: Text(
                                            'Ok',
                                          ),
                                        )
                                      ],
                                    ));
                          },
                          child: Text(
                            'Submit',
                          ),
                        ),
                      ),
                      SizedBox(
                        height: 40,
                      )
                    ],
                  ),
                ),
              ),
            );
          },
        ),
      ),
    );
  }
}
class\u QuizPageState扩展状态{
列出我的问题;
_QuizPageState(这个.我的问题);
int i=0;
整数计数=0;
int-选择放射性同位素;
整数分=0;
选择var;
小部件选择按钮(字符串k,int值){
返回填充(
填充:EdgeInsets.symmetric(
垂直:10,
),
孩子:放射科医生(
价值:价值,
groupValue:selectedRadioTile,
标题:集装箱(
child:Text(我的问题[i][k]??“无”),
),
一旦更改:(val){
设置选定的放射性同位素(val);
所选=val;
},
activeColor:Colors.green,
选择:正确,
),
);
}
void initState(){
selectedRadioTile=0;
super.initState();
}
setSelectedRadioTile(int val){
设置状态(){
selectedRadioTile=val;
});
}
无效检查答案(){
var e=int.parse(myQuestion[i][“Answer”]);
如果(e==选定){
分数=分数+1;
}否则{
打印(“错误”);
}
nextquestion();
}
void nextquestion(){
设置状态(){
如果(计数<9){
i=random介于(0,myQuestion.length)之间;
}否则{
导航器.of(上下文).pushReplacement(MaterialPage路线(
生成器:(上下文)=>resultpage(标记:标记),
));
}
});
}
@凌驾
小部件构建(构建上下文){
返回式示波器(
onWillPop:(){
返回显示对话框(
上下文:上下文,
生成器:(上下文)=>AlertDialog(
标题:正文(
“警报”,
),
内容:文本(“您在此阶段无法返回。”),
行动:[
扁平按钮(
已按下:(){
Navigator.of(context.pop();
},
子:文本(
“好的”,
),
)
],
));
},
孩子:脚手架(
appBar:appBar(
标高:30.0,
标题:中心(
子:文本(
“测验”,
样式:TextStyle(
颜色:颜色,白色,
字体大小:20.0,
丰特家族:“泉多”,
fontWeight:fontWeight.bold,
),
),
),
背景颜色:颜色。琥珀色[800],
),
正文:布局生成器(
生成器:(上下文,约束){
返回SingleChildScrollView(
子:约束框(
约束:BoxConstraints(最小高度:constraint.maxHeight),
孩子:内在的(
子:列(
儿童:[
扩大(
子:列(
mainAxisAlignment:mainAxisAlignment.center,
mainAxisSize:mainAxisSize.min,
儿童:[
居中(
子:容器(
填充:仅限边缘设置(顶部:20,左侧:10),
子:文本(
我的问题[i][“问题”]??“无”,
样式:TextStyle(
字体大小:15.0,
丰特家族:“泉多”,
fontWeight:fontWeight.bold,
),
),
),
),
大小盒子(
身高:20,
),
扩大(
孩子:AspectRatio(
专题:11月16日,
孩子:ClipRect(
孩子:大小盒子(
身高:50,
孩子:照片视图(
imageProvider:AssetImage(
我的问题[i][“图像”]??“无”),
明斯克:
PhotoViewComputedScale.com包含*
0.5,
最大刻度:
PhotoViewComputedScale.covered*2,
初始刻度:0.6,
背景装饰:盒子装饰(
颜色:主题。背景。画布颜色,
),
),
),
),
),
),
正文(
“要调整图像,请双击”,
样式:TextStyle(
丰特家族:“泉多”,
颜色:颜色。黑色,
字体大小:15.0,
fontWeight:fontWeight.bold,
),
),
],
),
),
大小盒子(
身高:10,
),
扩大(
子:列(
  void nextquestion() {
    setState(() {
      selectedRadioTile = 0;
      if (count < 9) {
        i = randomBetween(0, myQuestion.length);
      } else {
        Navigator.of(context).pushReplacement(MaterialPageRoute(
          builder: (context) => resultpage(marks: marks),
        ));
      }
    });
  }