Flutter 颤振:如何渲染贴图列表

Flutter 颤振:如何渲染贴图列表,flutter,dart,flutter-test,Flutter,Dart,Flutter Test,我遇到了一个问题。我正在尝试制作一个多选应用程序,我需要显示多选答案选项列表中的所有地图。我没有问题显示问题的数量,但我需要选项列表中的所有文本。问题是我只能显示一个选项,而不是所有选项 - 为这个关系写一个等式。 A.y=1/5x B.y=1/2x C.y=2x D.y=5x 而不是 为这个关系写一个等式。 A.y=1/5x 注意:每个问题包含不同的选项范围,例如问题1包含4个选项,问题2可能包含2个选项 我已经成功地序列化了JSON。简而言之,这是包含我的问题的JSON文件 "qu

我遇到了一个问题。我正在尝试制作一个多选应用程序,我需要显示多选答案选项列表中的所有地图。我没有问题显示问题的数量,但我需要选项列表中的所有文本。问题是我只能显示一个选项,而不是所有选项

-

为这个关系写一个等式。
A.y=1/5x
B.y=1/2x
C.y=2x
D.y=5x

而不是

  • 为这个关系写一个等式。
    A.y=1/5x
  • 注意:每个问题包含不同的选项范围,例如问题1包含4个选项,问题2可能包含2个选项

    我已经成功地序列化了JSON。简而言之,这是包含我的问题的JSON文件

    "questions": [
              {
                "_id": "5a13431102b92110003fdb8c",
                "createdAt": "2017-11-20T21:03:13.963Z",
                "updated": "2020-09-03T18:30:39.891Z",
                "time": 300000,
                "type": "MCQ",
                "published": true,
                "structure": {
                  "kind": "MCQ",
                  "query": {
                    "type": "text-image",
                    "media": [
                      {
                        "type": "image",
                        "url": "https://quizizz.com/media/resource/gs/quizizz-media/questions/L2FwcGhvc3RpbmdfcHJvZC9ibG9icy9BRW5CMlVwajVWZnl0S2RBRXpIazROejFaSTl0dkU3Rmt6cjhtcTRvTGVxeFJzeHVLQzlZa3hzYjNZdkpNa3N1TTItaE5UNmVHUUZVdl9ZdTR6YnNaTk5hV0luZWhZQm9sUS5pOTBwLU1YLUtMRXR5YlBZ"
                      }
                    ],
                    "text": "Write an equation for this relationship.",
                    "hasMath": false
                  },
                  "options": [
                    {
                      "type": "text",
                      "text": "y=1/5x",
                      "media": [],
                      "hasMath": false
                    },
                    {
                      "type": "text",
                      "text": "y=1/2x",
                      "media": [],
                      "hasMath": false
                    },
                    {
                      "type": "text",
                      "text": "y=2x",
                      "media": [],
                      "hasMath": false
                    },
                    {
                      "type": "text",
                      "text": "y=5x",
                      "media": [],
                      "hasMath": false
                    }
                  ],
                  "answer": 3,
                  "settings": {
                    "hasCorrectAnswer": true
                  }
                },
                "standards": [],
                "topics": [],
                "cached": true
              },
              {
                "type": "MCQ",
                "published": true,
                "structure": {
                  "settings": {
                    "hasCorrectAnswer": true
                  },
                  "explain": null,
                  "kind": "MCQ",
                  "options": [
                    {
                      "math": {
                        "latex": []
                      },
                      "type": "text",
                      "hasMath": false,
                      "media": [],
                      "text": "Line L"
                    },
                    {
                      "math": {
                        "latex": []
                      },
                      "type": "text",
                      "hasMath": false,
                      "media": [],
                      "text": "Line M"
                    }
                  ],
                  "query": {
                    "math": {
                      "latex": []
                    },
                    "type": "text-image",
                    "hasMath": false,
                    "media": [
                      {
                        "type": "image",
                        "url": "https://quizizz.com/media/resource/gs/quizizz-media/questions/L2FwcGhvc3RpbmdfcHJvZC9ibG9icy9BRW5CMlVyUDVXUV9kUEg0QmFVd0Y2WnlIalBqbDkweDZfVTRxQTZEQktGaVBPZ1R3VHNZeEM3SGZ0QllOUzUyWGdES3o2N3IzLXhnN1hueTNTS25zaVBzUFB2bTcyM29ady41OGdlemxaMlVaYlJhRmli"
                      }
                    ],
                    "text": "Which line shows a proportional relationship between x and y?"
                  },
                  "answer": 0
                },
                "standards": [],
                "topics": [],
                "_id": "580049efaa65fc295e4a83ff",
                "createdAt": "2016-10-14T02:58:55.180Z",
                "updated": "2020-09-03T18:30:39.891Z",
                "time": 30000
              },
              {
                "_id": "580049efaa65fc295e4a8400",
                "createdAt": "2016-10-14T02:58:55.180Z",
                "updated": "2020-09-03T18:30:39.891Z",
                "time": 30000,
                "type": "MCQ",
                "published": true,
                "structure": {
                  "kind": "MCQ",
                  "query": {
                    "type": "text-image",
                    "media": [
                      {
                        "type": "image",
                        "url": "https://quizizz.com/media/resource/gs/quizizz-media/questions/L2FwcGhvc3RpbmdfcHJvZC9ibG9icy9BRW5CMlVxTDdiaGVJTmZwb2d5ZlZ3VHMzUzRocTZ0SVBvbVRqY3g5eVZpZnlRaHRQZzZQMFZHMFZLX3FzbndPOFpGUXAxdi1uTVJ5aDlBQzNEVHFlN1NZaFFTbF9jSkpmTVF6amwtSTVzY0ZOVUpYaGEzaFFlUS51WHFpMjU5Z2djS0VsYmpF"
                      }
                    ],
                    "text": "What is the unit rate in this proportional relationship?",
                    "hasMath": false
                  },
                  "options": [
                    {
                      "type": "text",
                      "text": "60 miles/1 hour",
                      "media": [],
                      "hasMath": false
                    },
                    {
                      "type": "text",
                      "text": "120 miles/ 2 hours",
                      "media": [],
                      "hasMath": false
                    },
                    {
                      "type": "text",
                      "text": "1 mile/ 1 hour",
                      "media": [],
                      "hasMath": false
                    }
                  ],
                  "answer": 0,
                  "settings": {
                    "hasCorrectAnswer": true
                  }
                },
                "standards": [],
                "topics": [],
                "cached": true
              },
              {
                "_id": "580049efaa65fc295e4a8401",
                "createdAt": "2016-10-14T02:58:55.180Z",
                "updated": "2020-09-01T14:35:17.749Z",
                "time": 30000,
                "type": "MCQ",
                "published": true,
                "structure": {
                  "kind": "MCQ",
                  "query": {
                    "type": "text-image",
                    "media": [
                      {
                        "type": "image",
                        "url": "https://quizizz.com/media/resource/gs/quizizz-media/questions/L2FwcGhvc3RpbmdfcHJvZC9ibG9icy9BRW5CMlVxVDFSaFU2MmpZZUF2R1dVZnV3Wlg4bDJ1N19JeHRRRHBYdXRPbTNfTHdWRHZTUXBkWkw0bjBtcDZoSFVCOUFhRFpxZnJqd0J1SUpaYkV1dlZzajczU3FjMlYxYTJWRk0xcGNHUWlhTzh4UGtHQW5DZy5mS1VFYjEtN2hzTllQVnY2"
                      }
                    ],
                    "text": "Which statement best describes the relationship between x and y in the table?",
                    "hasMath": false
                  },
                  "options": [
                    {
                      "type": "text",
                      "text": "Proportional",
                      "media": [],
                      "hasMath": false
                    },
                    {
                      "type": "text",
                      "text": "Not Proportional",
                      "media": [],
                      "hasMath": false
                    }
                  ],
                  "answer": 0,
                  "settings": {
                    "hasCorrectAnswer": true
                  }
                },
                "standards": [],
                "topics": [],
                "cached": true
              }
     ]
    
    这是我用来显示问题和答案的代码

      SliverList(
        delegate: SliverChildBuilderDelegate(
                    (context, index) {
                      return Padding(
                        padding: const EdgeInsets.only(top: 8.0),
                        child: Card(
                          shape: RoundedRectangleBorder(
                            borderRadius: BorderRadius.circular(10.0),
                          ),
                          child: Padding(
                            padding: const EdgeInsets.all(10.0),
                            child: Column(
                              crossAxisAlignment: CrossAxisAlignment.stretch,
                              children: <Widget>[
                                Image.network(
                                  question.data.quiz.info.questions[index]
                                          .structure.query.media.isEmpty
                                      ? "https://moorestown-mall.com/noimage.gif"
                                      : question.data.quiz.info.questions[index]
                                          .structure.query.media[0].url,
                                  fit: BoxFit.cover,
                                ), //Display the image of questions
                                Text(
                                  "${index + 1}. ${question.data.quiz.info.questions[index].structure.query.text}",
                                  style: TextStyle(fontSize: 18.0),
                                ), //Display the questions
                                Text(question.data.quiz.info.questions[index].structure.options.toString(), style: TextStyle(fontSize: 16.0),), //Display the options
                              ],
                            ),
                          ),
                        ),
                      );
                    },
                    childCount: question.data.quiz.info.questions.length,
                  ),
                )
              ],
            ),
    
    SliverList(
    代表:SliverChildBuilderDelegate(
    (上下文、索引){
    返回填充(
    填充:仅限常量边集(顶部:8.0),
    孩子:卡片(
    形状:圆形矩形边框(
    边界半径:边界半径。圆形(10.0),
    ),
    孩子:填充(
    填充:常数边集全部(10.0),
    子:列(
    crossAxisAlignment:crossAxisAlignment.stretch,
    儿童:[
    图像网络(
    问题.数据.测验.信息.问题[索引]
    .structure.query.media.isEmpty
    ? "https://moorestown-mall.com/noimage.gif"
    :问题.数据.测验.信息.问题[索引]
    .structure.query.media[0]。url,
    适合:BoxFit.cover,
    ),//显示问题的图像
    正文(
    “${index+1}.${question.data.quick.info.questions[index].structure.query.text}”,
    样式:TextStyle(fontSize:18.0),
    ),//显示问题
    Text(question.data.quick.info.questions[index].structure.options.toString(),样式:TextStyle(fontSize:16.0),//显示选项
    ],
    ),
    ),
    ),
    );
    },
    childCount:question.data.quick.info.questions.length,
    ),
    )
    ],
    ),
    
    这是错误信息

    >  Performing hot reload...                                             
    > Reloaded 2 of 624 libraries in 1,074ms. I/flutter ( 9332): ══╡
    > EXCEPTION CAUGHT BY WIDGETS LIBRARY
    > ╞═══════════════════════════════════════════════════════════ I/flutter
    > ( 9332): The following RangeError was thrown building: I/flutter (
    > 9332): RangeError (index): Invalid value: Not in inclusive range 0..1:
    > 2 I/flutter ( 9332): I/flutter ( 9332): When the exception was thrown,
    > this was the stack: I/flutter ( 9332): #0      List.[]
    > (dart:core-patch/growable_array.dart:177:60) I/flutter ( 9332): #1    
    > HomePage.build.<anonymous closure>
    > (package:quizizz_cheat/screens/home.dart:46:96) I/flutter ( 9332): #2 
    > SliverChildBuilderDelegate.build
    > (package:flutter/src/widgets/sliver.dart:449:22) I/flutter ( 9332): #3
    > SliverMultiBoxAdaptorElement._build
    > (package:flutter/src/widgets/sliver.dart:1130:28) I/flutter ( 9332):
    >     #4      SliverMultiBoxAdaptorElement.createChild.<anonymous closure> (package:flutter/src/widgets/sliver.dart:1143:55) I/flutter (
    > 9332):
    >     #5      BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2626:19) I/flutter (
    > 9332): #6      SliverMultiBoxAdaptorElement.createChild
    > (package:flutter/src/widgets/sliver.dart:1136:11) I/flutter ( 9332):
    >     #7      RenderSliverMultiBoxAdaptor._createOrObtainChild.<anonymous closure>
    > (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:350:23)
    > I/flutter ( 9332): #8     
    > RenderObject.invokeLayoutCallback.<anonymous closure>
    > (package:flutter/src/rendering/object.dart:1883:59) I/flutter ( 9332):
    >     #9      PipelineOwner._enableMutationsToDirtySubtrees (package:flutter/src/rendering/object.dart:915:15) I/flutter ( 9332):
    >     #10     RenderObject.invokeLayoutCallback (package:flutter/src/rendering/object.dart:1883:14) I/flutter ( 9332):
    >     #11     RenderSliverMultiBoxAdaptor._createOrObtainChild (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:339:5)
    > I/flutter ( 9332): #12    
    > RenderSliverMultiBoxAdaptor.insertAndLayoutLeadingChild
    > (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:455:5)
    > I/flutter ( 9332): #13     RenderSliverList.performLayout
    > (package:flutter/src/rendering/sliver_list.dart:120:29) I/flutter (
    > 9332): #14     RenderObject.layout
    > (package:flutter/src/rendering/object.dart:1777:7) I/flutter ( 9332):
    >     #15     RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:507:13) I/flutter (
    > 9332): #16     RenderViewport._attemptLayout
    > (package:flutter/src/rendering/viewport.dart:1548:12) I/flutter (
    > 9332): #17     RenderViewport.performLayout
    > (package:flutter/src/rendering/viewport.dart:1457:20) I/flutter (
    > 9332): #18     RenderObject._layoutWithoutResize
    > (package:flutter/src/rendering/object.dart:1634:7) I/flutter ( 9332):
    >     #19     PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:884:18) I/flutter ( 9332):
    >     #20     RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:436:19) I/flutter ( 9332):
    >     #21     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:914:13) I/flutter ( 9332):
    >     #22     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:302:5) I/flutter ( 9332):
    >     #23     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1117:15) I/flutter (
    > 9332): #29     _invoke (dart:ui/hooks.dart:251:10)                    
    > ler/binding.dart:1055:9) I/flutter ( 9332): #30     _drawFrame
    > (dart:ui/hooks.dart:209:3)                      
    > uler/binding.dart:971:5) I/flutter ( 9332): (elided 3 frames from
    > dart:async) I/flutter ( 9332):
    > ════════════════════════════════════════════════════════════════════════════════════════════════════
    > I/flutter ( 9332): Another exception was thrown: RangeError (index):
    > Invalid value: Not════════════════════════════════ in inclusive range
    >     0..1: 2                                                             in inclusive range 0..1: 2
    
    正在执行热重新加载。。。 >在1074ms中重新加载了624个库中的2个。I/颤振(9332):══╡ >WIDGETS库捕获到异常 > ╞═══════════════════════════════════════════════════════════ I/颤振 >(9332):在建筑中抛出以下RangeError:I/颤振( >9332):范围错误(索引):无效值:不在包含范围0..1中: >2 I/flatter(9332):I/flatter(9332):当抛出异常时, >这是堆栈:I/flatter(9332):#0列表。[] >(飞镖:核心补丁/可生长#U阵列。飞镖:177:60)I/颤振(9332):#1 >主页.build。 >(套餐:quizizz_cheat/screens/home.dart:46:96)I/flutter(9332):#2 >SliverChildBuilderDelegate.build >(软件包:flatter/src/widgets/sliver.dart:449:22)I/flatter(9332):#3 >SliverMultiboxAdapterElement.\u构建 >(软件包:flatter/src/widgets/slaver.dart:1130:28)I/flatter(9332): >#4 SliverMultiboxAdapterElement.createChild。(软件包:flatter/src/widgets/sliver.dart:1143:55)I/flatter( > 9332): >#5 BuildOwner.buildScope(包:flatter/src/widgets/framework.dart:2626:19)I/flatter( >9332):#6 SliverMultiboxAdapterElement.createChild >(软件包:flatter/src/widgets/slaver.dart:1136:11)I/flatter(9332): >#7 RenderShielveMultiboxAdapter._createOrObtainChild。 >(包装:颤振/src/rendering/silver\u多盒适配器。省道:350:23) >I/颤振(9332):#8 >RenderObject.invokeLayoutCallback。 >(软件包:flatter/src/rendering/object.dart:1883:59)I/flatter(9332): >#9 PipelineOwner._启用置换方向子树(包:flatter/src/rendering/object.dart:915:15)I/flatter(9332): >#10 RenderObject.invokeLayoutCallback(包:flatter/src/rendering/object.dart:1883:14)I/flatter(9332): >#11 RendersLiverMultiboxAdapter._createOrObtainChild(包:颤振/src/rendering/Silver_MultiboxAdapter.省道:339:5) >I/颤振(9332):#12 >RenderShielveMultiboxAdapter.insertAndLayoutLeadingChild >(包装:颤振/src/rendering/silver\u多盒适配器。省道:455:5) >I/颤振(9332):#13 RenderSliverList.performLayout >(软件包:颤振/src/rendering/silver_list.dart:120:29)I/颤振( >9332):#14 RenderObject.layout >(软件包:flatter/src/rendering/object.dart:1777:7)I/flatter(9332): >#15 RenderViewportBase.layoutChildSequence(包:flatter/src/rendering/viewport.dart:507:13)I/flatter( >9332):#16 RenderViewport._尝试布局 >(包:flatter/src/rendering/viewport.dart:1548:12)I/flatter( >9332):#17 RenderViewport.performLayout >(包:flatter/src/rendering/viewport.dart:1457:20)I/flatter( >9332):#18渲染对象。_布局,不调整大小 >(软件包:flatter/src/rendering/object.dart:1634:7)I/flatter(9332): >#19 PipelineOwner.flushLayout(包:flatter/src/rendering/object.dart:884:18)I/flatter(9332): >#20 RenderBinding.drawFrame(包:flift/src/rendering/binding.dart:436:19)I/flift(9332): >#21 WidgetsBinding.drawFrame(包:flatter/src/widgets/binding.dart:914:13)I/flut
    for(final question in question.data.quiz.info.questions[index])
    Text(question.structure.options[0]['text'])
    
    Column(
      children: List.generate(
      option.length, // Length of the list
      (index) => Text(option[index]['text']                                            
    ) //Display the content of a list in a column