Android 颤振:如何处理具有不同数据的相似部件的状态变化

Android 颤振:如何处理具有不同数据的相似部件的状态变化,android,flutter,mobile,provider,flutter-provider,Android,Flutter,Mobile,Provider,Flutter Provider,使用的技术:[提供商] 我正在为当地农民开发一个应用程序,遇到了以下问题: 我有一个列表,我的组件数量基于此任务列表的长度,而且每个组件显示子任务,如标题、完成的大小等 List<Task> = [Task( title: "Simple task", start_date : "2020-10-20", end_date : "2020-11-20", completed_size : "90.0&quo

使用的技术:[提供商]

我正在为当地农民开发一个应用程序,遇到了以下问题:

我有一个
列表
,我的组件数量基于此任务列表的长度,而且每个组件显示子任务,如标题、完成的大小等

List<Task> = [Task(
 title: "Simple task",
 start_date : "2020-10-20",
 end_date : "2020-11-20",
 completed_size : "90.0",
 overall_size : "120.0",
 sub_tasks : <SubTask>[
  SubTask(
   title: "Sub Task 1 of Task 1",
   completed : "10.0",
  ),
  SubTask(
   title: "Sub Task 2 of Task 1",
   completed : "10.0",
 ),]
 ),
 Task(
 title: "Simple task 2",
 start_date : "2020-10-20",
 end_date : "2020-11-20",
 completed_size : "80.0",
 overall_size : "120.0",
 sub_tasks : <SubTask>[
  SubTask(
   title: "Sub Task 1 of Task 2",
   completed : "10.0",
  ),
  SubTask(
   title: "Sub Task 1 of Task 2",
   completed : "70.0",
   ),]
 ),]
My
selectTask()
函数

  void selectTask(int cropId, int taskId) {
int taskIndex = crops.indexWhere((element) => element.id == cropId);
_selectedTask =
    crops[taskIndex].tasks.firstWhere((element) => element.id == taskId);
notifyListeners();
}

显示循环

Container(
                    height: 380,
                    child: Consumer<Dashboard>(
                      builder: (ctx, crops, _) => PageView.builder(
                        physics: BouncingScrollPhysics(),
                        itemCount: crops.crops.length,
                        controller: PageController(
                          viewportFraction: 0.95,
                        ),
                        onPageChanged: (int index) => setState(() {
                          _index = index;
                        }),
                        itemBuilder: (_, i) {
                          return ChartCard(
                            i: i,
                            index: _index,
                            item: crops.crops[i],
                          );
                        },
                      ),
                    ),
                  ),
容器(
身高:380,
儿童:消费者(
生成器:(ctx,crops,)=>PageView.builder(
物理:弹跳CrollPhysics(),
itemCount:作物。作物。长度,
控制器:页面控制器(
视口分数:0.95,
),
onPageChanged:(int索引)=>setState((){
_指数=指数;
}),
itemBuilder:(u,i){
返回图表卡(
i:我,
索引:_索引,
项目:作物。作物[i],
);
},
),
),
),
p.S我已将
任务
S存储为作物(根据需要)

问题:

Expanded(
                          child: Row(
                            children: [
                              Expanded(
                                  child: Consumer<Dashboard>(
                                builder: (ctx, task, _) =>
                                    GaugeChart.withSampleData(
                                  animate: false,
                                  taskName: task.selectedTask.title,
                                  color: Theme.of(context).accentColor,
                                  completedValue:
                                      task.selectedTask.completedSize,
                                  totalValue: widget.item.totalSize,
                                ),
                              ))
                            ],
                          ),
                        ),
如何选择一个任务并仅修改其子项已更改的一个卡组件,而不接触其他卡组件,因为它没有存储在其他任务中的子任务