我正在使用蜂巢做一个待办项目,我想显示标记为“已完成”和“未完成”的待办事项。现在,当标记为已完成行为空时,我希望显示一条消息,如“您可以在完成todo后将todos标记为已完成”。我已经实现了这些特性,但问题是,“您可以在完成待办事项后标记待办事项”,重复使用待办事项中的项目数。例如,如果待办事项包含两个待办事项,且两者都未完成,则我将得到消息:
“您可以在完成待办事项后将待办事项标记为已完成”“您可以在完成待办事项后将待办事项标记为已完成”
我正在使用的代码:
ListView.builder(
primary: false,
itemCount: Hive.box___.length,
itemBuilder: (context, index) {
Todo? data = Hive.box____.getAt(index);
return data!.isCompleted
? _______ //show the todos that are completed
: const Center(
child: Text(
"You can mark todos as completed after completing the todo"
),
);
},发布于 2021-12-15 11:38:44
您还必须在itemCount上设置一个条件。
所以你有两个列表视图。一个用于未完成,另一个用于已完成的项目。
在每个ListView中,您必须对列表进行筛选,以便将筛选过的项传递给每个列表。在“已完成的列表”视图中写入
itemCount: completedItems.lenth == 0 ? 1 : completedItems.lenth在构建器中,您必须检查completedItems.lenth是否为零,然后返回Text,否则返回相应的卡片。
发布于 2021-12-15 12:31:34
我已经解决了问题,首先我已经过滤和检查,如果没有完成的项目,如果是这样,我已经显示项目计数为1,否则它将是长度的待办事项清单。
这是我的密码
ListView.builder(
primary: false,
itemCount: Hive.box___.length,
itemBuilder: (context, index) {
Todo? data = Hive.box__.values
.where((element) => element.iscompleted == true)
.isEmpty
? 1
: Hive.box____.length,;
return data!.isCompleted
? _______ //show the todos that are completed
: const Center(
child: Text(
"You can mark todos as completed after completing the todo"
),
);
},此外,我的代码是受@Riza共享的代码的启发,感谢您让我了解Hive.box____.get('name') @Giorgi
发布于 2021-12-15 11:38:48
外部构建器实现数据
List<Todo>? data = Hive.box____.get('name')
int count = Hive.box___.length;
ListView.builder(
primary: false,
itemCount:count,
itemBuilder: (context, index) {
);
if(data![index].isCompleted){
return _______ //show the todos that are completed
}
else {return const Center(
child: Text(
"You can mark todos as completed after completing the todo"
),
);
count = 0;
}
},https://stackoverflow.com/questions/70362829
复制相似问题