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