Lưới

Grid là một API Jetpack Compose cho phép bạn linh hoạt triển khai bố cục hai chiều. Với API này, bạn có thể hiển thị các mục trong bố cục nhiều cột hoặc nhiều hàng thích ứng với kích thước vùng chứa có sẵn.

Bố cục hai chiều linh hoạt và thích ứng bằng Lưới
Hình 1. Bố cục hai chiều linh hoạt và thích ứng với Grid.

Grid khác với các thành phần kết hợp tương tự như thế nào?

Compose đã cung cấp các thành phần tương tự, chẳng hạn như LazyVerticalGrid. Các thành phần này chủ yếu dùng để trực quan hoá các tập dữ liệu lớn, đồng nhất, chẳng hạn như hiển thị danh mục nội dung trong một ứng dụng phát trực tuyến video. Các thành phần này KHÔNG được thiết kế cho bố cục cấu trúc của màn hình hoặc thành phần phức tạp.

Bạn cũng có thể triển khai bố cục hai chiều bằng cách kết hợp nhiều thành phần kết hợp RowColumn. Tuy nhiên, phương pháp này có một số nhược điểm, chẳng hạn như hệ phân cấp sâu và khó thích ứng.

Bảng sau đây cung cấp thông tin tổng quan về bố cục phù hợp cho từng API:

Thành phần Mục đích
LazyVerticalGrid, LazyStaggeredGrid, LazyHorizontalGrid Trực quan hoá các tập dữ liệu lớn, đồng nhất cần tải từng phần.
Row, Column, FlexBox Bố cục một chiều
Grid Bố cục hai chiều

Thuật ngữ

Làm quen với các thuật ngữ sau để hiểu cách hoạt động của Grid.

Đường lưới

Lưới được tạo thành từ các đường thẳng chạy theo chiều ngang và chiều dọc. Nếu lưới của bạn có 3 hàng, thì lưới đó sẽ có 4 đường kẻ ngang, kể cả đường kẻ sau hàng cuối cùng. Trong hình ảnh sau, mỗi đường chấm chấm biểu thị một đường lưới:

Lưới này bao gồm 4 đường ngang và 3 đường dọc.
Hình 2. Lưới này bao gồm 4 đường ngang và 3 đường dọc.

Lưới theo dõi

Làn lưới là khoảng trống giữa hai đường lưới. Một hàng nằm giữa hai đường ngang và một cột nằm giữa hai đường dọc. Để xác định kích thước của các đường này, hãy chỉ định kích thước cho chúng khi bạn tạo lưới.

Một đường lưới cho hàng đầu tiên.
Hình 3. Một đường lưới cho hàng đầu tiên.

Ô lưới

Ô lưới là giao điểm của một hàng và cột.

Một ô lưới là giao điểm của hàng thứ hai và cột thứ hai.
Hình 4. Một ô lưới là giao điểm của hàng thứ hai và cột thứ hai.

Vùng lưới

Một vùng lưới bao gồm nhiều ô lưới. Bạn có thể xác định một vùng lưới bằng cách làm cho một mục trải rộng trên nhiều đường.

Một vùng lưới bao gồm 4 ô lưới.
Hình 5. Một vùng lưới bao gồm 4 ô lưới.

Khoảng trống giữa các lưới

Khoảng trống lưới là khoảng cách giữa các đường lưới. Bạn không thể đặt một phần tử trên giao diện người dùng vào một khoảng trống, nhưng bạn có thể trải rộng một phần tử trên giao diện người dùng trên khoảng trống đó.

Khoảng trống lưới giữa cột đầu tiên và cột thứ hai.
Hình 6. Khoảng trống lưới giữa cột đầu tiên và cột thứ hai.