Tham số có tên và bắt buộc
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 13 trên 33.
Khi có ba hoặc bốn trường, Book('Dune', 'Frank Herbert', 412) khó đọc, và bạn dễ vô tình đổi chỗ hai chuỗi. Tham số có tên đặt tên trường vào mỗi lần gọi:
class Book {
final String title;
final int pages;
Book({required this.title, required this.pages});
}
Book(title: 'Dune', pages: 412)Dấu ngoặc nhọn trong hàm khởi tạo giúp tham số có tên. Bạn viết từng tham số theo dạng name: value, theo thứ tự bất kỳ.
Các widget bạn đã dùng cũng nhận tham số có tên, chẳng hạn như Text(style: ...) hoặc ListTile(title: ...).
required nghĩa là bạn phải cung cấp tham số đó: nếu bỏ pages:, trình chỉnh sửa sẽ báo lỗi trước khi ứng dụng chạy.
Thử thách
Trung bìnhHiển thị số trang của mỗi cuốn sách:
- thêm trường
final int pages;vàoBook - đổi hàm khởi tạo thành hàm có các tham số được đặt tên và bắt buộc, rồi viết các cuốn sách dưới dạng
Book(title: 'Dune', author: 'Frank Herbert', pages: 412). Emma có474trang và Ulysses có730trang - hiển thị
412 pagesở cuối mỗi hàng, làm giá trịtrailing:của 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', 'Frank Herbert'),
Book('Emma', 'Jane Austen'),
Book('Ulysses', 'James Joyce'),
];
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),
subtitle: Text(book.author),
),
],
),
),
);
}
}
class Book {
final String title;
final String author;
Book(this.title, this.author);
}
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