待办事项列表:任务列表
本课属于 Coddy Flutter 学习旅程的“项目”单元。第 1 课,共 36 课。
这个单元包含 4 个应用,每次构建一个功能。你已经熟悉每个部分,现在要像制作真正的应用那样把它们组合起来。
第一个应用是待办事项列表。本章结束时,你就能添加任务、勾选完成、滑动删除、撤销删除,还能筛选要查看的内容。
每个应用都从数据开始。目前,任务只是一个标题,所以用一个小类来保存它,而屏幕会在它的 State 中保存任务列表:
class Task {
Task(this.title);
final String title;
}
final List<Task> _tasks = [Task('Buy milk')];ListView.builder 会把这个列表转换成屏幕上的行。它会针对从 0 到 itemCount 前的每个索引调用一次 itemBuilder,每次调用都会返回一个 ListTile。
挑战
简单显示任务:
- 编写一个
Task类,其中包含final String title和构造函数Task(this.title) - 在
_TodoScreenState中,创建一个包含三个任务的列表_tasks:Buy milk、Walk the dog和Read a book - 将
body:中的Center替换为ListView.builder,让它在ListTile中显示每个任务的标题
亲手试试
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.teal),
),
home: const TodoScreen(),
);
}
}
// 在这里编写 Task 类。
class TodoScreen extends StatefulWidget {
const TodoScreen({super.key});
@override
State<TodoScreen> createState() => _TodoScreenState();
}
class _TodoScreenState extends State<TodoScreen> {
// 在这里创建任务列表。
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('My Tasks')),
body: const Center(
child: Text('Your tasks go here'),
),
);
}
}
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
项目中的所有课
自己练习: Flutter 在线编译器