首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >颤振力列表生成器仅显示一个基于条件的项目

颤振力列表生成器仅显示一个基于条件的项目
EN

Stack Overflow用户
提问于 2021-12-15 11:23:42
回答 3查看 1.4K关注 0票数 0

我正在使用蜂巢做一个待办项目,我想显示标记为“已完成”和“未完成”的待办事项。现在,当标记为已完成行为空时,我希望显示一条消息,如“您可以在完成todo后将todos标记为已完成”。我已经实现了这些特性,但问题是,“您可以在完成待办事项后标记待办事项”,重复使用待办事项中的项目数。例如,如果待办事项包含两个待办事项,且两者都未完成,则我将得到消息:

“您可以在完成待办事项后将待办事项标记为已完成”“您可以在完成待办事项后将待办事项标记为已完成”

我正在使用的代码:

代码语言:javascript
复制
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"
                            ),
                          );
                  },
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-12-15 11:38:44

您还必须在itemCount上设置一个条件。

所以你有两个列表视图。一个用于未完成,另一个用于已完成的项目。

在每个ListView中,您必须对列表进行筛选,以便将筛选过的项传递给每个列表。在“已完成的列表”视图中写入

代码语言:javascript
复制
itemCount: completedItems.lenth == 0 ? 1 : completedItems.lenth

在构建器中,您必须检查completedItems.lenth是否为零,然后返回Text,否则返回相应的卡片。

票数 1
EN

Stack Overflow用户

发布于 2021-12-15 12:31:34

我已经解决了问题,首先我已经过滤和检查,如果没有完成的项目,如果是这样,我已经显示项目计数为1,否则它将是长度的待办事项清单。

这是我的密码

代码语言:javascript
复制
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

票数 1
EN

Stack Overflow用户

发布于 2021-12-15 11:38:48

外部构建器实现数据

代码语言:javascript
复制
 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;
}
                          },
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70362829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档