Toàn bộ chiều rộng: double.infinity
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 14 trên 30.
Một nút có chiều rộng bằng nhãn của nó. Trên trang đăng nhập, bạn thường muốn nút kéo dài hết chiều ngang trang, bằng với chiều rộng của các trường phía trên.
Bọc nút trong một SizedBox có chiều rộng là double.infinity:
SizedBox(
width: double.infinity,
child: ElevatedButton(
onPressed: () {},
child: const Text('Continue'),
),
)double.infinity là một số trong Dart lớn hơn mọi số khác. Không hộp nào có thể rộng đến mức đó, nên Flutter sẽ làm hộp rộng bằng giới hạn của phần tử cha: ở đây là trang bên trong phần đệm. Trên điện thoại rộng hơn, nút cũng rộng theo.
Mỗi lần chỉ dùng nó cho một hướng. Chiều cao double.infinity bên trong Column yêu cầu chiều cao vô hạn, khiến Flutter dừng lại và báo lỗi.
Thử thách
DễĐặt chiều rộng của nút Sign in bằng chiều rộng của trường email phía trên, đồng thời giữ nguyên chiều cao thông thườ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('Welcome back')),
body: Padding(
padding: const EdgeInsets.all(16),
child: Column(
children: [
const TextField(
decoration: InputDecoration(labelText: 'Email'),
),
const SizedBox(height: 24),
ElevatedButton(
onPressed: () {},
child: const Text('Sign in'),
),
],
),
),
),
);
}
}
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 nhau4Kích thước và điểm ngắt
Toàn bộ chiều rộng: double.infinityChiều rộng tối đaKích thước màn hình: MediaQueryĐiểm ngắt của LayoutBuilder3Xế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