Android 当某个键处于活动状态时,是否可以从ListView生成器中隐藏某个元素?

Android 当某个键处于活动状态时,是否可以从ListView生成器中隐藏某个元素?,android,list,flutter,listview,dart,Android,List,Flutter,Listview,Dart,我决定实践一些基本的颤振知识,因此我制作了一个包含已完成和正在进行的任务的待办应用程序,每个任务都有自己的列表(因此我在这里使用两个列表) 我使用的listview询问开关变量对已完成的任务或正在进行的任务是否处于活动状态,因此它通过使用提供程序管理屏幕状态来根据此信息构建元素列表 我正在考虑一种方法,使用单个列表(因为我必须复制所有内容才能将内容添加到“完成”列表),并且仅当“完成”开关处于活动状态时才显示标记的任务 换句话说:当任务被标记时,是否可以从正在进行的列表中隐藏它,并在用户单击“完

我决定实践一些基本的颤振知识,因此我制作了一个包含已完成和正在进行的任务的待办应用程序,每个任务都有自己的列表(因此我在这里使用两个列表)

我使用的listview询问开关变量对已完成的任务或正在进行的任务是否处于活动状态,因此它通过使用提供程序管理屏幕状态来根据此信息构建元素列表

我正在考虑一种方法,使用单个列表(因为我必须复制所有内容才能将内容添加到“完成”列表),并且仅当“完成”开关处于活动状态时才显示标记的任务

换句话说:当任务被标记时,是否可以从正在进行的列表中隐藏它,并在用户单击“完成”选项卡时显示它(使用相同的listview)


如果没有,我应该用另一种方式吗?

我在这里创建了一个简单版本的Todo应用程序,供您参考。使用
isDone
属性为每个任务项创建
Task
对象会更容易,您可以在以后操作并使用该属性检查任务完成情况。比如:

类任务{
布尔伊斯通;
字符串内容;
任务({this.isDone=false,this.content});
}
然后可以使用
\u showDone
变量控制是否显示已完成任务的状态。在这里,我在文本中加了一条斜线,表示这是一项已完成的任务。然后,如果您愿意,只需在按钮/选项卡单击中触发此
\u showDone
。这里我使用了一个浮动文本按钮

全面实施:

导入“包装:颤振/材料.省道”; main(){ runApp(材料应用程序)( 主页:主页(), )); } 类主页扩展了StatefulWidget{ @凌驾 _HomePageState createState()=>\u HomePageState(); } 类_HomePageState扩展状态{ bool_showDone=false; 列出任务= 生成(10,(索引)=>Task(内容:“Task$index”); @凌驾 小部件构建(构建上下文){ 返回脚手架( 浮动操作按钮:文本按钮( 按下:()=>设置状态(()=>\u showDone=!\u showDone), 子项:_showDone?Text('Hide done'):Text('Show done'), ), appBar:appBar(标题:Text('Sample Todo App')), 主体:容器( 对齐:对齐.center, 子:ListView( 子项:List.generate(_tasks.length,(索引){ if(!\u任务[index].isDone){ 返回buildTaskItem(索引); }否则{ 如果(_showDone)返回_buildTaskItem(索引); 返回容器(); } }), ), ), ); } 小部件_buildTaskItem(索引){ 返回列表块( 标题:正文( _任务[索引]。内容, 样式:TextStyle( 装饰: _任务[index].isDone?TextDecoration.lineThrough:null), ), onTap:()=>设置状态(()=>_任务[index].isDone=!_任务[index].isDone), ); } } 课堂任务{ 布尔伊斯通; 字符串内容; 任务({this.isDone=false,this.content}); }