Một lớp cho dữ liệu của bạn
Thuộc phần Danh sách và màn hình trong hành trình Flutter của Coddy. Bài học 12 trên 33.
Một cuốn sách không chỉ là một chuỗi: sách có tiêu đề và tác giả, và hai phần đó thuộc về nhau. Một lớp (class) mô tả một kiểu giá trị mới gồm các phần có tên, gọi là trường (fields):
class Book {
final String title;
final String author;
Book(this.title, this.author);
}Dòng Book(this.title, this.author); là hàm khởi tạo (constructor): hàm này tạo một cuốn sách mới và điền các trường theo thứ tự đó. Book('Dune', 'Frank Herbert') là một cuốn sách có tiêu đề Dune.
Đọc một trường bằng dấu chấm: book.title, book.author. Danh sách sách có kiểu List<Book>, tương tự như danh sách chuỗi có kiểu List<String>.
Đặt lớp riêng bên ngoài các lớp widget, thường là ở cuối tệp.
Thử thách
Trung bìnhLớp Book chỉ có tiêu đề. Hãy thêm tác giả:
- thêm trường
final String author;và gán giá trị cho trường này trong hàm khởi tạo, sau tiêu đề - gán tác giả cho từng cuốn sách:
Frank Herbert,Jane AustenvàJames Joyce - hiển thị tác giả dưới dạng
subtitlecủa từng mục
Tự làm thử
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
final List<Book> books = [
Book('Dune'),
Book('Emma'),
Book('Ulysses'),
];
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
appBar: AppBar(title: const Text('Books')),
body: ListView(
children: [
for (Book book in books)
ListTile(
title: Text(book.title),
),
],
),
),
);
}
}
class Book {
final String title;
Book(this.title);
}
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Danh sách và màn hình
1Danh sách cuộn
Danh sách có thể cuộnÔ danh sáchPhần đầu và phần cuốiChạm vào một ô danh sáchĐường phân cách giữa các hàng4Các lớp của riêng bạn
Một lớp cho dữ liệu của bạnTham số có tên và bắt buộcCác trường có thể để trốngTạo widget từ dữ liệu bằng mapLọc danh sách bằng whereTra cứu trong Map5Nhiều hơn một màn hình
Mở màn hình mớiMũi tên quay lạiQuay lại bằng nútGửi dữ liệu đến màn hìnhNhận lại kết quả6Tab, ngăn kéo và thao tác vuốt
Tab với thanh điều hướngBiểu tượng tô kín cho tab đang mởNgăn kéo bênVuốt để xóaHoàn tác thao tác vuốtTự luyện tập: Trình biên dịch Flutter online