Flutter任务管理插件flutter_checklist的使用
Flutter任务管理插件flutter_checklist的使用
一个用于显示待办事项列表的小部件。
安装
请查看安装指南。
功能
- 显示待办事项列表
- 切换项目并编辑其文本
- 重新排序项目
- 添加新项目(在当前提交的项目之后或最后)
- 删除项目
- 将待办事项列表设置为只读
使用方法
ChecklistLine
ChecklistLine 类型是一个记录,表示待办事项列表中的一个条目。它包含该行的文本和是否已勾选的信息。
一个 ChecklistLine 的列表代表一个带有所有条目的待办事项列表。列表的顺序直接决定了待办事项列表中项目的顺序。
// 要显示的五个 ChecklistLine,包括它们的文本和是否已勾选
final lines = List.generate(
5,
(index) => (text: 'Line ${index + 1}', toggled: false),
);
// 当待办事项列表被修改时执行的函数,传入新的 ChecklistLine 列表
void onChanged(List<ChecklistLine> lines) {
log(lines.toString());
}
// 待办事项小部件
Checklist(
lines: lines,
onChanged: onChanged,
);
Checklist
Checklist 小部件会将您的 ChecklistLine 列表显示为一个待办事项列表。
它需要传递两个参数:
- 需要显示的
ChecklistLine列表 - 当列表发生任何修改时执行的回调函数,并附带新的
ChecklistLine列表
可以通过将 enabled 参数设置为 false 来使待办事项列表变为只读,这将禁用对列表项的任何修改以及重新排序。
Checklist(
lines: lines,
onChanged: onChanged,
enabled: false, // 设置为只读
);
本地化
嵌入式
此包支持本地化。要在您的应用中启用它,请在 MaterialApp 中添加本地化代理:
MaterialApp(
localizationsDelegates: [
ChecklistLocalizations.delegate,
// 其他本地化代理,来自您的应用或其他包
],
);
目前支持的本地化语言(按字母顺序排列):
- 英语
- 法语
如果您希望添加新的本地化支持或改进现有的本地化,请打开一个问题。
自定义
为了提供自己的本地化(替换嵌入的本地化或提供缺失的本地化),实现 ChecklistLocalizations 类(例如查看生成的本地化文件)并将其传递给 localizations 参数:
Checklist(
lines: lines,
onChanged: onChanged,
localizations: CustomChecklistLocalizations(),
)
示例
请参阅示例应用。
import 'dart:developer';
import 'package:flutter/material.dart';
import 'package:flutter_checklist/checklist.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
MyApp({super.key});
final lines = List.generate(
5,
(index) => (text: 'Line ${index + 1}', toggled: false),
);
void onChanged(List<ChecklistLine> lines) {
log(lines.toString());
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
locale: Locale('en'),
localizationsDelegates: [
...ChecklistLocalizations.localizationsDelegates,
],
supportedLocales: [
...ChecklistLocalizations.supportedLocales,
],
home: Scaffold(
appBar: AppBar(
title: const Text('flutter_checklist 示例'),
),
body: Builder(
builder: (context) {
return Checklist(
lines: lines,
onChanged: onChanged,
);
},
),
),
);
}
}
更多关于Flutter任务管理插件flutter_checklist的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter任务管理插件flutter_checklist的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
flutter_checklist 是一个用于在 Flutter 应用中管理任务的插件。它可以帮助你轻松地创建、管理和显示任务列表。以下是如何使用 flutter_checklist 插件的基本步骤:
1. 添加依赖
首先,你需要在 pubspec.yaml 文件中添加 flutter_checklist 插件的依赖:
dependencies:
flutter:
sdk: flutter
flutter_checklist: ^1.0.0 # 请检查最新版本
然后运行 flutter pub get 来获取依赖。
2. 导入包
在你的 Dart 文件中导入 flutter_checklist 包:
import 'package:flutter_checklist/flutter_checklist.dart';
3. 使用 Checklist 小部件
flutter_checklist 提供了一个 Checklist 小部件,你可以直接在应用中使用它来显示和管理任务列表。
class MyHomePage extends StatefulWidget {
[@override](/user/override)
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
List<Task> _tasks = [
Task(title: 'Task 1', isCompleted: false),
Task(title: 'Task 2', isCompleted: true),
Task(title: 'Task 3', isCompleted: false),
];
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Task Manager'),
),
body: Checklist(
tasks: _tasks,
onTaskChanged: (Task task, bool isChecked) {
setState(() {
task.isCompleted = isChecked;
});
},
onTaskDeleted: (Task task) {
setState(() {
_tasks.remove(task);
});
},
),
);
}
}
4. 自定义任务项
你可以通过传递 taskBuilder 参数来自定义任务项的显示方式:
Checklist(
tasks: _tasks,
taskBuilder: (BuildContext context, Task task, Function(bool) onChanged, Function() onDeleted) {
return ListTile(
title: Text(task.title),
leading: Checkbox(
value: task.isCompleted,
onChanged: onChanged,
),
trailing: IconButton(
icon: Icon(Icons.delete),
onPressed: onDeleted,
),
);
},
onTaskChanged: (Task task, bool isChecked) {
setState(() {
task.isCompleted = isChecked;
});
},
onTaskDeleted: (Task task) {
setState(() {
_tasks.remove(task);
});
},
);
5. 添加新任务
你可以通过添加一个按钮来允许用户添加新任务:
floatingActionButton: FloatingActionButton(
onPressed: () {
setState(() {
_tasks.add(Task(title: 'New Task', isCompleted: false));
});
},
child: Icon(Icons.add),
),
6. 完整示例
以下是一个完整的示例,展示了如何使用 flutter_checklist 插件来创建一个简单的任务管理应用:
import 'package:flutter/material.dart';
import 'package:flutter_checklist/flutter_checklist.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Checklist Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
[@override](/user/override)
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
List<Task> _tasks = [
Task(title: 'Task 1', isCompleted: false),
Task(title: 'Task 2', isCompleted: true),
Task(title: 'Task 3', isCompleted: false),
];
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Task Manager'),
),
body: Checklist(
tasks: _tasks,
taskBuilder: (BuildContext context, Task task, Function(bool) onChanged, Function() onDeleted) {
return ListTile(
title: Text(task.title),
leading: Checkbox(
value: task.isCompleted,
onChanged: onChanged,
),
trailing: IconButton(
icon: Icon(Icons.delete),
onPressed: onDeleted,
),
);
},
onTaskChanged: (Task task, bool isChecked) {
setState(() {
task.isCompleted = isChecked;
});
},
onTaskDeleted: (Task task) {
setState(() {
_tasks.remove(task);
});
},
),
floatingActionButton: FloatingActionButton(
onPressed: () {
setState(() {
_tasks.add(Task(title: 'New Task', isCompleted: false));
});
},
child: Icon(Icons.add),
),
);
}
}

