Flutter 重试三个测验中的一个-使用3个屏幕进行颤振导航
我是个新手,我正在尝试从结果屏幕导航到实际的测验屏幕,以便再次进行相同的测验。但是,问题和答案取决于主屏幕上的选择 如何相应地传递数据,以便在不返回主屏幕的情况下选择正确的问题和答案?目前,如果我点击“重试”,它只显示测验3 Main.dart: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
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"
}
]