Chạm vào một ô danh sách
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 4 trên 33.
Danh sách không chỉ để đọc: bạn chạm vào một hàng để chọn. ListTile có onTap:, một hàm (function) chạy khi bạn chạm vào hàng đó, tương tự như onPressed: của nút.
ListTile(
title: Text(fruit),
onTap: () {
setState(() {
picked = fruit;
});
},
)Một ô có onTap: cũng hiển thị hiệu ứng gợn sóng khi bạn chạm vào, khiến nó có cảm giác như một nút.
Khi các ô được tạo bằng for, onTap của mỗi ô ghi nhớ fruit riêng. Chạm vào Kiwi sẽ chạy hàm của Kiwi, với fruit được đặt thành 'Kiwi'.
Thử thách
DễThanh ứng dụng hiển thị Pick a fruit. Thêm onTap: cho từng ô để khi bạn chạm vào một loại trái cây, thanh ứng dụng sẽ đổi thành You picked Mango (với loại trái cây bạn đã chạm vào).
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) {
return const MaterialApp(
debugShowCheckedModeBanner: false,
home: FruitPicker(),
);
}
}
class FruitPicker extends StatefulWidget {
const FruitPicker({super.key});
@override
State<FruitPicker> createState() => _FruitPickerState();
}
class _FruitPickerState extends State<FruitPicker> {
final List<String> fruits = ['Apple', 'Banana', 'Kiwi', 'Mango', 'Peach'];
String picked = 'Pick a fruit';
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text(picked)),
body: ListView(
children: [
for (String fruit in fruits)
ListTile(
title: Text(fruit),
),
],
),
);
}
}
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àng5Nhiề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