Flutter Layout là gì ?
Trong Flutter, layout là quá trình sắp xếp các widget con trong không gian giao diện người dùng. Flutter cung cấp nhiều widget layout giúp xây dựng giao diện ứng dụng linh hoạt và dễ dàng. Việc sử dụng đúng các widget layout sẽ giúp bạn tạo ra giao diện đẹp mắt và dễ bảo trì.
Các loại widget layout cơ bản
1. Row và Column
-
Row: Dùng để sắp xếp các widget con theo chiều ngang (theo hàng).
-
Column: Dùng để sắp xếp các widget con theo chiều dọc (theo cột).
2. Stack
-
Stack: Cho phép xếp các widget lên trên nhau (layered layout), giống như một tấm ảnh có nhiều lớp.
3. Expanded và Flexible
- Expanded: Làm cho widget con chiếm hết không gian còn lại trong Row, Column, hoặc Flex.
- Flexible: Tương tự như Expanded, nhưng cho phép kiểm soát tỷ lệ không gian mà widget con chiếm.
4. Container
- Container: Là một widget rất linh hoạt, có thể dùng để bọc, trang trí, và định dạng các widget khác như padding, margin, kích thước, màu sắc.
5. SizedBox
- SizedBox: Dùng để tạo không gian trống với kích thước xác định, có thể dùng để tạo khoảng cách giữa các widget.
6. ListView
- ListView: Dùng để hiển thị danh sách các widget con có thể cuộn (scrollable list). Đây là widget phổ biến khi làm việc với danh sách dữ liệu dài.
Ứng dụng Layout vào Mini Project (Note App)
Mục tiêu của Project:
Tạo ứng dụng ghi chú đơn giản với các chức năng cơ bản:
- Nhập nội dung ghi chú.
- Lưu ghi chú vào danh sách.
- Hiển thị danh sách ghi chú.
- Xóa ghi chú.
Vai trò của các Layout Widget trong Project:
- Container: Dùng để bọc các widget khác, như TextField, ElevatedButton, hoặc ListView. Container cho phép điều chỉnh kích thước, padding, margin, và nhiều thuộc tính khác.
- Column: Dùng để sắp xếp các widget theo chiều dọc. Trong ứng dụng này, Column được sử dụng để sắp xếp các widget như TextField, ElevatedButton và ListView.
- Row: Dùng trong trường hợp cần bố trí các widget theo chiều ngang. Ví dụ, nếu có các nút bấm hoặc icon cần được xếp ngang nhau, Row sẽ rất hữu ích.
- SingleChildScrollView: Dùng để cho phép cuộn toàn bộ nội dung khi người dùng cuộn trang, đặc biệt là khi số lượng widget trong ứng dụng quá nhiều.
- Expanded: Dùng trong trường hợp muốn các widget chiếm không gian còn lại trong Row hoặc Column. Ví dụ, nếu bạn muốn một phần tử chiếm phần còn lại của màn hình, bạn có thể sử dụng Expanded để nó tự động mở rộng.
Mục tiêu sẽ làm trong bài báo cáo này :
- Trang trí giao diện cơ bảng bằng các Layout
- Github Project : https://github.com/phuoc24205/intern-flutter-project
Hình kết quả: