Sửa lỗi tràn: Mở rộng
Thuộc phần Bố cục phù hợp với mọi màn hình trong hành trình Flutter của Coddy. Bài học 6 trên 30.
Một Text trong Row muốn nằm trên một dòng dài. Khi dòng dài hơn hàng, nội dung tràn sang bên phải, dù văn bản có thể xuống dòng.
Văn bản không xuống dòng vì hàng cho phép mỗi phần tử con rộng tùy ý. Bọc văn bản trong Expanded, văn bản sẽ có chiều rộng đúng bằng khoảng trống mà các phần tử con khác để lại. Văn bản có chiều rộng xác định sẽ xuống nhiều dòng hơn.
Row(
children: [
const Icon(Icons.info),
const Expanded(
child: Text('A long sentence that now wraps instead of spilling out.'),
),
],
)Đây là cách khắc phục đầu tiên khi nội dung tràn sang bên phải: thêm Expanded cho phần tử con cần thu nhỏ. Bọc một widget vốn đã nhỏ, như biểu tượng, sẽ không làm thay đổi gì đối với văn bản dài.
Thử thách
DễĐịa chỉ giao hàng tràn ra khỏi mép phải. Hãy để địa chỉ xuống dòng nhiều hơn, đồng thời giữ mũi tên ở mép phải của hàng.
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 MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
appBar: AppBar(title: const Text('Delivery')),
body: Padding(
padding: const EdgeInsets.all(16),
child: Column(
children: [
Row(
children: [
const Icon(Icons.location_on, color: Colors.red),
const SizedBox(width: 8),
const Text(
'221B Baker Street, Marylebone, London NW1 6XE, United Kingdom',
),
const Icon(Icons.chevron_right),
],
),
],
),
),
),
);
}
}
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 Bố cục phù hợp với mọi màn hình
1Chia sẻ không gian trong hàng
Expanded lấp đầy hàngChia sẻ không gian với flexFlexible ôm sát phần tử conSpacer đẩy các phần tử ra xa nhau2Lỗi tràn
Lỗi trànSửa lỗi tràn: Mở rộngSửa lỗi tràn: CuộnSửa lỗi tràn: Xuống dòngKhoảng cách bên trong phần xuống dòng3Xếp chồng các widget
Xếp chồng widget lên trênĐặt ở một gócCăn chỉnh bên trong hộpSafeArea và phần khuyết6Giao diện chủ đề và chế độ tối
Tạo giao diện chủ đề từ một seedMàu sắc Theme.of(context)Kiểu chữ từ giao diện chủ đềGiao diện chủ đề tốiCông tắc chế độ tốiTự luyện tập: Trình biên dịch Flutter online