Flutter 重试三个测验中的一个-使用3个屏幕进行颤振导航

Flutter 重试三个测验中的一个-使用3个屏幕进行颤振导航,flutter,dart,flutter-navigation,Flutter,Dart,Flutter Navigation,我是个新手,我正在尝试从结果屏幕导航到实际的测验屏幕,以便再次进行相同的测验。但是,问题和答案取决于主屏幕上的选择 如何相应地传递数据,以便在不返回主屏幕的情况下选择正确的问题和答案?目前,如果我点击“重试”,它只显示测验3 Main.dart: import 'package:flutter/material.dart'; import 'package:blitz_shortcuts/quizpage.dart'; import 'dart:convert'; import 'dart:ma

我是个新手,我正在尝试从结果屏幕导航到实际的测验屏幕,以便再次进行相同的测验。但是,问题和答案取决于主屏幕上的选择

如何相应地传递数据,以便在不返回主屏幕的情况下选择正确的问题和答案?目前,如果我点击“重试”,它只显示测验3

Main.dart:

import 'package:flutter/material.dart';
import 'package:blitz_shortcuts/quizpage.dart';
import 'dart:convert';
import 'dart:math';

import 'package:flutter/services.dart';

void main() {
  runApp(MyApp());
}

Widget quiz(BuildContext context, String quizName, Icon quizIcon) {
  return Padding(
      padding: EdgeInsets.all(10.0),
      child: Row(
        children: [
          Padding(
            padding: EdgeInsets.all(10.0),
            child: InkWell(
                onTap: () {
                  Navigator.pushReplacement(
                      context,
                      MaterialPageRoute(
                        builder: (context) => getjson(quizName: quizName),
                      ));
                },
                child: Column(
                  mainAxisAlignment: MainAxisAlignment.center,
                  crossAxisAlignment: CrossAxisAlignment.center,
                  children: [
                    quizIcon,
                    Text(
                      quizName,
                      style: (TextStyle(
                        height: 2.0,
                        color: Colors.grey[600],
                        fontFamily: "RobotoCondensed",
                        fontSize: 14,
                      )),
                    )
                  ],
                )),
          ),
        ],
      ));
}

Widget customrow(BuildContext context, String categoryName) {
  return Padding(
      padding: EdgeInsets.all(10),
      child: Column(children: [
        Stack(children: [
          Divider(
            color: Color.fromRGBO(3, 218, 198, 1),
            thickness: 2,
            indent: 120,
          ),
          Container(
            child: Text(
              categoryName,
              style: TextStyle(
                fontFamily: "Poppins",
                fontSize: 12,
                fontWeight: FontWeight.bold,
              ),
            ),
          ),
        ]),
      ]));
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    SystemChrome.setPreferredOrientations(
        [DeviceOrientation.portraitDown, DeviceOrientation.portraitUp]);
    return MaterialApp(
      home: Builder(
          builder: (context) => Scaffold(
                appBar: AppBar(
                  backgroundColor: Color.fromRGBO(52, 73, 85, 1),
                  title: Text('Quiz'),
                ),
                body: ListView(children: [
                  Container(
                      constraints: BoxConstraints(minHeight: 320),
                      color: Color.fromRGBO(224, 224, 224, 1),
                      child: Padding(
                          padding: EdgeInsets.all(10),
                          child: Column(
                            children: <Widget>[
                              customrow(context, 'Row'),
                              Row(
                                children: [
                                  quiz(context, 'Quiz 1', Icon(Icons.stop)),
                                  quiz(context, 'Quiz 2', Icon(Icons.check)),
                                  quiz(context, 'Quiz 3',
                                      Icon(Icons.pause_circle_filled)),
                                ],
                              )
                            ],
                          )))
                ]),
              )),
    );
  }
}
小测验2:

[
    {
        "1": "This is Quiz 2"
        
    },
    {
        "1": {
            "a": "CTRL + S",
            "b": "CTRL + C",
            "c": "CTRL + V",
            "d": "CTRL + P"
        }
        
    },
    {
        "1": "CTRL + C"
    }
]
小测验3:

[
    {
        "1": "This is Quiz 3"
        
    },
    {
        "1": {
            "a": "CTRL + S",
            "b": "CTRL + C",
            "c": "CTRL + V",
            "d": "CTRL + P"
        }
        
    },
    {
        "1": "CTRL + C"
    }
]
[
    {
        "1": "This is Quiz 1"
        
    },
    {
        "1": {
            "a": "CTRL + S",
            "b": "CTRL + C",
            "c": "CTRL + V",
            "d": "CTRL + P"
        }
        
    },
    {
        "1": "CTRL + C"
    }
]
[
    {
        "1": "This is Quiz 2"
        
    },
    {
        "1": {
            "a": "CTRL + S",
            "b": "CTRL + C",
            "c": "CTRL + V",
            "d": "CTRL + P"
        }
        
    },
    {
        "1": "CTRL + C"
    }
]
[
    {
        "1": "This is Quiz 3"
        
    },
    {
        "1": {
            "a": "CTRL + S",
            "b": "CTRL + C",
            "c": "CTRL + V",
            "d": "CTRL + P"
        }
        
    },
    {
        "1": "CTRL + C"
    }
]